1036 Commits

Author SHA1 Message Date
Vadim Petrochenkov
f0622dfe5d Use Idents for associated item definitions in HIR
Remove emulation of hygiene with gensyms
2018-06-28 11:04:50 +03:00
Vadim Petrochenkov
c6ca1e4abd Use Idents in a number of structures in HIR
Namely: labels, type parameters, bindings in patterns, parameter names in functions without body.
All of these do not need hygiene after lowering to HIR, only span locations.
2018-06-28 11:04:50 +03:00
Michael Woerister
257d279fe4 Make FileMap::{lines, multibyte_chars, non_narrow_chars} non-mutable. 2018-06-27 14:00:34 +02:00
John Kåre Alsaker
14d3c6e8f4 Make opaque::Encoder append-only and make it infallible 2018-06-27 11:43:15 +02:00
Vadim Petrochenkov
c00f5af4d6 hygiene: Do not reset expansion info for quote! 2018-06-23 20:40:25 +03:00
Taylor Cramer
cf844b547d async await desugaring and tests 2018-06-21 22:36:36 -07:00
Without Boats
18ff7d091a Parse async fn header.
This is gated on edition 2018 & the `async_await` feature gate.

The parser will accept `async fn` and `async unsafe fn` as fn
items. Along the same lines as `const fn`, only `async unsafe fn`
is permitted, not `unsafe async fn`.The parser will not accept
`async` functions as trait methods.

To do a little code clean up, four fields of the function type
struct have been merged into the new `FnHeader` struct: constness,
asyncness, unsafety, and ABI.

Also, a small bug in HIR printing is fixed: it previously printed
`const unsafe fn` as `unsafe const fn`, which is grammatically
incorrect.
2018-06-21 22:29:47 -07:00
varkor
4343c20819 Use ty::Generics instead of hir::Generics for various checks 2018-06-20 12:23:46 +01:00
varkor
f457b3d10a Refactor generic parameters in rustdoc/clean 2018-06-20 12:21:52 +01:00
varkor
80b381e041 Remove all traces of lifetimes() and types() methods 2018-06-20 12:21:24 +01:00
varkor
c818a1df9b Remove specific parameter iterators from hir::Generics 2018-06-20 12:21:08 +01:00
varkor
82dba3d419 Refactor hir::GenericParam as a struct 2018-06-20 12:21:07 +01:00
Simon Sapin
d2fe6c4527 Update the error message for a missing global allocator
Don’t mention `#[default_lib_allocator]` (which is an implementation detail
irrelevant to most users) and instead suggest using `#[global_allocator]`,
which is often the correct fix.
2018-06-19 20:16:43 +02: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
Eduard-Mihai Burtescu
5a5c7ded0d rustc: rename ty::maps to ty::query. 2018-06-14 18:05:12 +03:00
Oliver Schneider
9b1bd94e37 Add existential type definitons 2018-06-07 17:33:53 +02:00
Mark Simulacrum
19e0b7da1c Remove is_import field 2018-06-03 11:29:44 -06:00
John Kåre Alsaker
b7aabaa3fc Update recursion limits 2018-06-01 14:56:01 +02:00
Michael Woerister
22f6163db4 Make metadata decoding use AllocDecodingState/Session. 2018-06-01 09:32:24 +02:00
Vadim Petrochenkov
189c0a1297 Use Idents for fields in HIR 2018-05-26 14:41:58 +03:00
bors
c3733a770e Auto merge of #50528 - whitfin:issue-50508, r=michaelwoerister
Remove attribute_cache from CrateMetadata

This PR will fix #50508 by removing the `attribute_cache` from the `CrateMetadata` struct. Seeing as performance was referenced in the original issue, I also cleaned up a `self.entry(node_id);` call which might have occasionally happened redundantly.

r? @michaelwoerister
2018-05-23 09:50:54 +00:00
Eduard-Mihai Burtescu
26aad25487 rustc: introduce {ast,hir}::AnonConst to consolidate so-called "embedded constants". 2018-05-19 20:34:42 +03:00
Isaac Whitfield
d95ba305b4 Catch an issue missed in rebase 2018-05-18 10:21:42 -07:00
Isaac Whitfield
55a00a95cf Remove unnecessary impl methods for CrateMetadata 2018-05-18 09:38:08 -07:00
Isaac Whitfield
680f3b24ba Serialize attributes into the CrateRoot 2018-05-18 09:37:29 -07:00
Isaac Whitfield
ca60c404b6 Remove unnecessary clone call for panic_strategy 2018-05-18 09:37:29 -07:00
Isaac Whitfield
5f5ea79611 Avoid removing from cstore_impl for now 2018-05-18 09:37:29 -07:00
Isaac Whitfield
ece778e2a3 Attempt to pass CrateMetadata flags on creation 2018-05-18 09:37:29 -07:00
Isaac Whitfield
466fc6815d Avoid generating attributes more than once for CrateMetadata 2018-05-18 09:37:13 -07:00
Isaac Whitfield
f418f1dd78 Remove attribute_cache from CrateMetadata 2018-05-18 09:36:45 -07:00
Vadim Petrochenkov
f4cbc2388f Pass crate editions to macro expansions, update tests 2018-05-17 23:13:09 +03:00
Vadim Petrochenkov
76bf3454da Keep crate edition in metadata 2018-05-17 23:13:09 +03:00
Irina Popa
b63d7e2b1c Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
varkor
15d2759d90 Rename has_type_parameters to requires_monomorphization 2018-05-15 14:20:19 +01:00
varkor
de1c29c95e Reduce parent_params to parent_count 2018-05-15 14:20:19 +01:00
varkor
fe0c119e7d Consolidate ty::Generics 2018-05-15 14:20:19 +01:00
Alex Burka
e857c1b790 restore feature for stage0 2018-05-13 19:51:33 +00:00
Alex Burka
394945ee36 stabilize :lifetime 2018-05-13 19:51:32 +00:00
Alex Crichton
4199a6c1ee
Rollup merge of #50538 - michaelwoerister:atomic-cnums, r=Zoxc
Make CrateNum allocation more thread-safe.

This PR makes sure that we can't have race conditions when assigning CrateNums. It's a slight improvement but a larger refactoring of the CrateStore/CrateLoader infrastructure would be good, I think.

r? @Zoxc
2018-05-10 11:35:24 -05:00
Michael Woerister
4537025c71 Add comment about first element in CStore::metas. 2018-05-09 21:32:18 +02:00
Michael Woerister
b8b957d479 Make CrateNum allocation more thread-safe. 2018-05-09 16:05:32 +02:00
Michael Woerister
31d2012ef7 Adapt some method visibilities in librustc_metadata::cstore. 2018-05-09 10:33:45 +02:00
Michael Woerister
ea4942835d Don't use Lock for heavily accessed CrateMetadata::cnum_map. 2018-05-08 14:32:31 +02:00
bors
f76f6fbdea Auto merge of #50271 - sinkuu:fix_ice, r=eddyb
Fix ICE #48984

* ~~fbf6423  The tail type was not normalized.~~
* d0839d5680  The method had a wrong assumption that something whose parent is a trait is an associated item. Fixes #48984.
2018-04-29 03:01:09 +00:00
Shotaro Yamada
9fc2595802 Make trait_of_item return None for non associated items
It have returned `Some` for constants in a trait definition,
and `Instance::resolve` called `tcx.associated_item` for them,
causing ICE.
2018-04-28 10:49:45 +09:00
bors
3c43aa5677 Auto merge of #50102 - Zoxc:query-nomacro, r=michaelwoerister
Move query code outside macros and store query jobs separately from query results

Based on https://github.com/rust-lang/rust/pull/50067

r? @michaelwoerister
2018-04-27 16:42:31 +00:00
John Kåre Alsaker
4036d2be8a Create a job immediately when looking in the query map and start it later 2018-04-27 12:09:58 +02:00
John Kåre Alsaker
4d52751d12 Rename InternedString to LocalInternedString and introduce a new thread-safe InternedString 2018-04-27 03:35:32 +02:00
Irina Popa
04fa0e7bb3 rustc_target: move in syntax::abi and flip dependency. 2018-04-26 17:49:16 +03:00
Irina Popa
38e964077b Rename rustc_back::target to rustc_target::spec. 2018-04-26 16:39:44 +03:00