summary refs log tree commit diff
path: root/src/librustc_metadata
AgeCommit message (Collapse)AuthorLines
2016-11-03Do not intern filemap to entry w/ mismatched length. Fix #37274 (I think).Felix S. Klock II-0/+4
2016-10-19Stabilise `?`Nick Cameron-1/+1
cc [`?` tracking issue](https://github.com/rust-lang/rust/issues/31436)
2016-09-24Load macros from `#[macro_use]` extern crates in `resolve`.Jeffrey Seyfried-5/+5
2016-09-23Load extern crates in `resolve`.Jeffrey Seyfried-134/+82
2016-09-20rustc_resolve: bring back "struct called like a function" cross-crate.Eduard Burtescu-0/+15
2016-09-20rustc_metadata: don't die with --test because CFG_VERSION is missing.Eduard Burtescu-0/+4
2016-09-20rustc_metadata: fix for the new `?` ambiguity around collect.Eduard Burtescu-1/+1
2016-09-20rustc_metadata: move opt_item_name to TyCtxt::item_name.Eduard Burtescu-44/+5
2016-09-20rustc_metadata: reduce Lazy{,Seq} overhead by using a relative encoding.Eduard Burtescu-26/+148
2016-09-20rustc_metadata: replace RBML with a simple and type-safe scheme.Eduard Burtescu-2461/+1802
2016-09-20rustc_metadata: split the Def description of a DefId from item_children.Eduard Burtescu-53/+46
2016-09-20rustc_metadata: move all encoding/decoding helpers to methods.Eduard Burtescu-1125/+1000
2016-09-20rustc_metadata: use the shorthand encoding for predicates also.Eduard Burtescu-122/+65
2016-09-20rustc_metadata: store dense indexes in little-endian instead of big.Eduard Burtescu-19/+10
2016-09-20rustc_metadata: group information into less tags.Eduard Burtescu-1417/+867
2016-09-20rustc_metadata: remove all unnecessary tables from astencode.Eduard Burtescu-80/+2
2016-09-20rustc_metadata: group the tags into root tags and item tags.Eduard Burtescu-312/+205
2016-09-20rustc: remove ImplOrTraitItemId and TraitDef's associated_type_names.Eduard Burtescu-46/+12
2016-09-20rustc_metadata: move more RBML tags to auto-serialization.Eduard Burtescu-1658/+802
2016-09-20rustc_metadata: remove ty{en,de}code and move to auto-derived serialization.Eduard Burtescu-1022/+79
2016-09-20rustc_metadata: side-step ty{en,de}code for everything but Ty.Eduard Burtescu-363/+51
2016-09-20Remove librbml and the RBML-tagged auto-encoder/decoder.Eduard Burtescu-1080/+259
2016-09-20rustc_trans: use the TypeId hashing mechanism instead of metadata.Eduard Burtescu-24/+1
2016-09-20rustc_metadata: go back to not using the opaque format.Eduard Burtescu-203/+165
2016-09-20rustc: replace uses of NodeId in Def, other than closures and labels.Eduard Burtescu-1/+2
2016-09-20rustc_metadata: go only through rustc_serialize in astencode.Eduard Burtescu-790/+257
2016-09-20rustc_metadata: combine DecodeContext and rbml::reader::Decoder.Eduard Burtescu-593/+301
2016-09-20rustc_metadata: encode miscellaneous information opaquely.Eduard Burtescu-59/+32
2016-09-20rustc_metadata: sign-extend when decoding signed integers.Eduard Burtescu-17/+50
2016-09-20rustc_metadata: use specialization for {en,de}coding Ty and Substs.Eduard Burtescu-21/+47
2016-09-20rustc_metadata: combine EncodeContext and rbml::writer::Encoder.Eduard Burtescu-864/+800
2016-09-20rustc_metadata: remove astencode tests.Eduard Burtescu-163/+0
2016-09-20rustc_metadata: remove extension traits from astencode.Eduard Burtescu-178/+7
2016-09-20rustc_metadata: remove redundant lifetimes from astencode::DecodeContext.Eduard Burtescu-54/+52
2016-09-20rbml: move the tagged encoder/decoder to librustc_metadata.Eduard Burtescu-1/+1560
2016-09-19Auto merge of #36102 - GuillaumeGomez:rustc_metadata_diagnostics, ↵bors-9/+185
r=jonathandturner Rustc metadata diagnostics r? @jonathandturner
2016-09-15Auto merge of #36393 - petrochenkov:ancient, r=eddybbors-28/+0
Remove some obsolete code from the compiler
2016-09-15Rollup merge of #36438 - jseyfried:node_ids_in_expansion, r=nrcManish Goregaokar-2/+2
Assign node ids during macro expansion After this PR, - The `ExtCtxt` can access `resolve`'s `Resolver` through the trait object `ext::base::Resolver`. - The `Resolver` trait object can load macros and replaces today's `MacroLoader` trait object. - The macro expander uses the `Resolver` trait object to resolve macro invocations. - The macro expander assigns node ids and builds the `Resolver`'s `macros_at_scope` map. - This is groundwork for merging import resolution and expansion. - Performance of expansion together with node id assignment improves by ~5%. **EDIT:** Since Github is reordering the commits, here is `git log`: - b54e1e399741579612f13e2df98a25ea9447989d: Differentiate between monotonic and non-monotonic expansion and only assign node ids during monotonic expansion. - 78c00398780db6f59ebf43e765fa9368dad436d2: Expand generated test harnesses and macro registries. - f3c2dca3539e6edc745f9c91898cb97d281865c1: Remove scope placeholders from the crate root. - c86c8d41a26b2037e80c9fd028a59313a78b3a66: Perform node id assignment and `macros_at_scope` construction during the `InvocationCollector` and `PlaceholderExpander` folds. - 72a636975fc5d0bb4af45af7bdd97987cc722a6a: Move macro resolution into `librustc_resolve`. - 20b43b23230ce063ccf99a4841d85790ad311bdf: Rewrite the unit tests in `ext/expand.rs` as a `compile-fail` test. - a9821e1658240bb2c056f260a4b6bc9789301fae: Refactor `ExtCtxt` to use a `Resolver` instead of a `MacroLoader`. - 60440b226d2f70bdae803443ff7ad2e2af2c9b10: Refactor `noop_fold_stmt_kind` out of `noop_fold_stmt`. - 50f94f6c95c944f08c4af264f48260e42efefd47: Avoid needless reexpansions. r? @nrc
2016-09-15Rollup merge of #36425 - michaelwoerister:stable-projection-bounds, r=eddybManish Goregaokar-9/+4
Fix indeterminism in ty::TraitObject representation. Make sure that projection bounds in `ty::TraitObject` are sorted in a way that is stable across compilation sessions and crate boundaries. This PR + moves `DefPathHashes` up into `librustc` so it can be used there to create a stable sort key for `DefId`s, + changes `PolyExistentialProjection::sort_key()` to take advantage of the above, + and removes the unused `PolyProjectionPredicate::sort_key()` and `ProjectionTy::sort_key()` methods. Fixes #36155
2016-09-13Auto merge of #36041 - ahmedcharles:try, r=nrcbors-2/+2
Replace try! with ?.
2016-09-13Remove some ancient code providing special support for newtypesVadim Petrochenkov-28/+0
2016-09-13Fix rebasing fallout.Michael Woerister-1/+1
2016-09-13Remove redundant sorting of projection bounds in tyencode.Michael Woerister-8/+1
2016-09-13Make sure that projection bounds in ty::TraitObject are sorted in a way that ↵Michael Woerister-1/+3
is stable across compilation sessions and crate boundaries.
2016-09-13Refactor `ExtCtxt` to use a `Resolver` instead of a `MacroLoader`.Jeffrey Seyfried-2/+2
2016-09-12crate-ify compiler-rt into compiler-builtinsJorge Aparicio-0/+9
libcompiler-rt.a is dead, long live libcompiler-builtins.rlib This commit moves the logic that used to build libcompiler-rt.a into a compiler-builtins crate on top of the core crate and below the std crate. This new crate still compiles the compiler-rt instrinsics using gcc-rs but produces an .rlib instead of a static library. Also, with this commit rustc no longer passes -lcompiler-rt to the linker. This effectively makes the "no-compiler-rt" field of target specifications a no-op. Users of `no_std` will have to explicitly add the compiler-builtins crate to their crate dependency graph *if* they need the compiler-rt intrinsics. Users of the `std` have to do nothing extra as the std crate depends on compiler-builtins. Finally, this a step towards lazy compilation of std with Cargo as the compiler-rt intrinsics can now be built by Cargo instead of having to be supplied by the user by some other method. closes #34400
2016-09-12Auto merge of #35960 - nikomatsakis:incr-comp-krate-edges, r=michaelwoeristerbors-47/+30
fix a few errant `Krate` edges Exploring the effect of small changes on `syntex` reuse, I discovered the following sources of unnecessary edges from `Krate` r? @michaelwoerister
2016-09-11Use question_mark feature in librustc_metadata.Ahmed Charles-2/+2
2016-09-08Refactor `TyStruct`/`TyEnum`/`TyUnion` into `TyAdt`Vadim Petrochenkov-39/+8
2016-09-08Ignore this block code because of OSX failureggomez-2/+2