Mark Rousskov
683a3db01f
Switch to bootstrapping from 1.29 beta
2018-08-01 11:59:08 -06:00
bors
6323d9a45b
Auto merge of #52355 - pietroalbini:zfeature, r=eddyb
...
Add the -Zcrate-attr=foo unstable rustc option
This PR adds a new unstable option to `rustc`: `-Zcrate-attr=foo`. The option can be used to inject crate-level attributes from the CLI, and it's meant to be used by tools like Crater that needs to add their own attributes to a crate without changing the source code.
The exact reason I need this is to implement "edition runs" in Crater: we need to add the preview feature flag to every crate, and editing the crates' source code on the fly might produce unexpected results, while a compiler flag is more reliable.
cc https://github.com/rust-lang-nursery/crater/issues/282 @Mark-Simulacrum
2018-07-28 23:10:10 +00:00
kennytm
7da22148ec
Rollup merge of #52703 - ljedrz:vec_improvements, r=nikomatsakis
...
Improve a few vectors - calculate capacity or build from iterators
Collecting from iterators improves readability and tailoring vector capacities should be beneficial in terms of performance.
2018-07-28 16:24:57 +08:00
Pietro Albini
71276c6abc
Add the -Zcrate-attr=foo nightly rustc flag to inject crate attributes
2018-07-27 19:51:21 +02:00
ljedrz
acd38f656a
Improve a few vectors - calculate capacity or build from iterators
2018-07-26 21:48:38 +02:00
Tatsuyuki Ishi
e098985939
Deny bare_trait_objects globally
2018-07-25 10:25:29 +09:00
bors
c7cba3d33f
Auto merge of #52024 - oli-obk:existential_parse, r=nikomatsakis
...
Implement existential types
(not for associated types yet)
r? @nikomatsakis
cc @Centril @varkor @alexreg
2018-07-19 21:14:01 +00:00
Esteban Küber
ed362c07ff
Do not use desugared ident when suggesting adding a type
2018-07-18 10:02:15 -07:00
Oliver Schneider
53d2ebb0ad
Implement existential types
2018-07-18 10:53:08 +02:00
Vadim Petrochenkov
4d1a30c92b
Remove most of PartialEq
impls from AST and HIR structures
2018-07-14 14:56:57 +03:00
ljedrz
5058af7003
Deny bare trait objects in the rest of rust
2018-07-12 13:50:22 +02:00
Vadim Petrochenkov
fc74e35981
Remove fallback to parent modules from lexical resolution
2018-07-08 18:16:09 +03:00
Vadim Petrochenkov
94ef9f57f5
hygiene: Decouple transparencies from expansion IDs
2018-07-08 16:17:37 +03:00
Vadim Petrochenkov
01b6d7cc6f
libsyntax_pos: Tweak some visibilities
2018-07-08 16:17:36 +03:00
Vadim Petrochenkov
84f1bc8b66
Address comments
2018-06-30 01:53:32 +03:00
Vadim Petrochenkov
9f92fce77c
Fortify dummy span checking
2018-06-30 01:53:32 +03:00
Vadim Petrochenkov
99ecdb3f5f
hygiene: Implement transparent marks
2018-06-30 01:53:32 +03:00
bors
9f79d2f86a
Auto merge of #50997 - michaelwoerister:pre-analyze-filemaps, r=Mark-Simulacrum
...
Make FileMap::{lines, multibyte_chars, non_narrow_chars} non-mutable.
This PR removes most of the interior mutability from `FileMap`, which should be beneficial, especially in a multithreaded setting. This is achieved by initializing the state in question when the filemap is constructed instead of during lexing. Hopefully this doesn't degrade performance.
cc @wesleywiser
2018-06-28 11:20:41 +00:00
Michael Woerister
a1f8a6ce80
Fix FileMap::line_begin_pos().
...
The method relied on the FileMap still being under construction in
order for it to do what the name promises. It's now independent of
the current state.
2018-06-28 10:46:04 +02:00
Vadim Petrochenkov
d7072b5bb4
Fix rebase
2018-06-28 11:04:51 +03:00
Vadim Petrochenkov
f0622dfe5d
Use Ident
s for associated item definitions in HIR
...
Remove emulation of hygiene with gensyms
2018-06-28 11:04:50 +03:00
Vadim Petrochenkov
c5454c04bc
Use Ident
s for lifetimes in HIR
2018-06-28 11:04:50 +03:00
Michael Woerister
ba30c1dac9
syntax_pos: Store multibyte char size as u8 instead of u32.
2018-06-27 14:00:34 +02:00
Michael Woerister
ba1d18fe29
Add comments to analzye_filemap().
2018-06-27 14:00:34 +02:00
Michael Woerister
5a6dc8c4f5
Add SSE2 accelerated version of FileMap analysis.
2018-06-27 14:00:34 +02:00
Michael Woerister
3497138634
Use u32 instead of usize of encoding byte count of multi-byte chars.
2018-06-27 14:00:34 +02:00
Michael Woerister
257d279fe4
Make FileMap::{lines, multibyte_chars, non_narrow_chars} non-mutable.
2018-06-27 14:00:34 +02:00
Vadim Petrochenkov
d347270e0c
Implement #[macro_export(local_inner_macros)]
2018-06-27 13:10:16 +03:00
Zack M. Davis
057715557b
migrate codebase to ..=
inclusive range patterns
...
These were stabilized in March 2018's #47813 , and are the Preferred Way
to Do It going forward (q.v. #51043 ).
2018-06-26 07:53:30 -07:00
Berkus Karchebnyy
07479688b2
Fix typo
2018-06-25 23:44:48 +03:00
Vadim Petrochenkov
20ce91076a
hygiene: Merge NameAndSpan
into ExpnInfo
2018-06-23 21:53:24 +03:00
Vadim Petrochenkov
117cb040f1
hygiene: Make sure transparency of Mark::root()
is an implementation detail and cannot be inspected outside of hygiene.rs
2018-06-23 20:42:25 +03:00
Vadim Petrochenkov
869fa27d13
hygiene: Rename MarkKind
to Transparency
...
Move `is_builtin` for `Mark` to a separate flag
2018-06-23 20:09:21 +03:00
Vadim Petrochenkov
b15785b671
hygiene: Make sure expansion info is set at most once for a given Mark
2018-06-23 20:09:21 +03:00
Vadim Petrochenkov
9b2a89b7f1
hygiene: Give Debug
impls to hygiene structures
2018-06-23 20:09:21 +03:00
Taylor Cramer
cf844b547d
async await desugaring and tests
2018-06-21 22:36:36 -07:00
bors
862703e05e
Auto merge of #51414 - oli-obk:impl_trait_type_def, r=pnkfelix
...
Add existential type definitions
Note: this does not allow creating named existential types, it just desugars `impl Trait` to a less (but still very) hacky version of actual `existential type` items.
r? @nikomatsakis
2018-06-18 14:34:52 +00:00
Manish Goregaokar
dc943349bd
Fix comment on editions
2018-06-14 11:21:48 -07:00
Havvy
ebc315bbbb
Implement RFC 2421, 'Keyword unreservations (pure, sizeof, alignof, offsetof)'
2018-06-09 14:15:57 -07:00
Oliver Schneider
9b1bd94e37
Add existential type definitons
2018-06-07 17:33:53 +02:00
Guillaume Gomez
ebee483e24
Add doc keyword support
2018-06-04 09:51:41 +02:00
Vadim Petrochenkov
1e4269cb83
Add Ident::as_str
helper
2018-05-26 15:20:23 +03:00
bors
df40e61382
Auto merge of #50307 - petrochenkov:keyhyg2, r=nikomatsakis
...
Implement edition hygiene for keywords
Determine "keywordness" of an identifier in its hygienic context.
cc https://github.com/rust-lang/rust/pull/49611
I've resurrected `proc` as an Edition-2015-only keyword for testing purposes, but it should probably be buried again. EDIT: `proc` is removed again.
2018-05-18 10:57:05 +00:00
bors
dfc07a48f6
Auto merge of #50847 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
...
Rollup of 10 pull requests
Successful merges:
- #50387 (Remove leftover tab in libtest outputs)
- #50553 (Add Option::xor method)
- #50610 (Improve format string errors)
- #50649 (Tweak `nearest_common_ancestor()`.)
- #50790 (Fix grammar documentation wrt Unicode identifiers)
- #50791 (Fix null exclusions in grammar docs)
- #50806 (Add `bless` x.py subcommand for easy ui test replacement)
- #50818 (Speed up `opt_normalize_projection_type`)
- #50837 (Revert #49767 )
- #50839 (Make sure people know the book is free oline)
Failed merges:
2018-05-18 02:58:13 +00:00
bors
bedbf72785
Auto merge of #50566 - nnethercote:bump, r=petrochenkov
...
Streamline `StringReader::bump`
These patches make `bump` smaller and nicer. They speed up most runs for coercions and tuple-stress by 1--3%.
2018-05-18 00:09:37 +00:00
Vadim Petrochenkov
dae5f05f43
Remove the proc
keyword again
2018-05-17 23:13:09 +03:00
Vadim Petrochenkov
c4352ff198
Turn some functions from token.rs
into methods on Ident
2018-05-17 23:13:09 +03:00
Vadim Petrochenkov
f89e356245
Add two keywords specific to editions 2015 and 2018 respectively
2018-05-17 23:13:09 +03:00
Vadim Petrochenkov
640884bad0
Add edition to expansion info
2018-05-17 23:13:08 +03:00
Vadim Petrochenkov
ee5b1e15aa
Move definition of Edition
from libsyntax to libsyntax_pos
2018-05-17 23:13:08 +03:00