about summary refs log tree commit diff
path: root/src/librustc/front
AgeCommit message (Collapse)AuthorLines
2016-04-06rustc: move rustc_front to rustc::hir.Eduard Burtescu-2136/+0
2016-03-31librustc: replace panic!() with bug!()Benjamin Herr-25/+25
2016-03-30Clean up the privacy visitorJeffrey Seyfried-8/+0
2016-03-25add krate_attrs accessorNiko Matsakis-1/+10
makes better edges in dep graph
2016-03-25refactor DefPathData variantsNiko Matsakis-23/+24
In particular, remove the name from the Impl, since that name is synthesized and is not predictable (it tends to break incr. comp.). Also rename the variants to be a bit more uniform and remove some distinctions that we were not really taking advantage of anywhere.
2016-03-25store krate information more uniformlyNiko Matsakis-28/+49
make DefPath store krate and enable uniform access to crate_name/crate_disambiguator
2016-03-25track def-id for inlined itemsNiko Matsakis-5/+41
2016-03-21Expose attached attributes to `FnKind` abstraction so that I can look at ↵Felix S. Klock II-19/+28
them in borrowck.
2016-03-17hir_map: Provide expression and statement attributes.Eduard Burtescu-0/+3
2016-03-03Auto merge of #31824 - jseyfried:privacy_in_resolve, r=nikomatsakisbors-0/+24
This PR privacy checks paths as they are resolved instead of in `librustc_privacy` (fixes #12334 and fixes #31779). This removes the need for the `LastPrivate` system introduced in PR #9735, the limitations of which cause #31779. This PR also reports privacy violations in paths to intra- and inter-crate items the same way -- it always reports the first inaccessible segment of the path. Since it fixes #31779, this is a [breaking-change]. For example, the following code would break: ```rust mod foo { pub use foo::bar::S; mod bar { // `bar` should be private to `foo` pub struct S; } } impl foo::S { fn f() {} } fn main() { foo::bar::S::f(); // This is now a privacy error } ``` r? @alexcrichton
2016-03-02Move span into `StructField`Vadim Petrochenkov-3/+3
+ some cleanup in rustdoc
2016-03-02Use numeric field `Name`s ("0", "1" etc) for positional fieldsVadim Petrochenkov-6/+2
2016-03-02Get rid of hir::StructFieldKindVadim Petrochenkov-12/+6
2016-02-26Lay the groundwork for privacy checking in typeckJeffrey Seyfried-0/+24
2016-02-19Fix error[E0518] not displayed for #[inline] on structs inside fnsnxnfufunezn-0/+1
2016-02-18Fix a weird case in the HIR map, where fields are not present in theNiko Matsakis-1/+11
map. Perhaps I ought to just add them instead, but this seems harmless enough.
2016-02-14Rename hir::Pat_ and its variantsVadim Petrochenkov-2/+2
2016-02-12Autoderef in librustcJonas Schievink-18/+18
2016-02-11[breaking-change] don't glob export ast::Item_ variantsOliver 'ker' Schneider-3/+3
2016-02-11[breaking-change] don't glob import/export syntax::abi enum variantsOliver Schneider-3/+3
2016-02-05Address nits.Niko Matsakis-5/+5
2016-02-05Instrument the AST map so that it registers reads when data isNiko Matsakis-11/+93
acccessed.
2016-01-26Implement the translation item collector.Michael Woerister-7/+7
The purpose of the translation item collector is to find all monomorphic instances of functions, methods and statics that need to be translated into LLVM IR in order to compile the current crate. So far these instances have been discovered lazily during the trans path. For incremental compilation we want to know the set of these instances in advance, and that is what the trans::collect module provides. In the future, incremental and regular translation will be driven by the collector implemented here.
2015-12-22Fix def paths creation for items inlined from external crates.Michael Woerister-6/+5
Avoid duplicating the last element of the def path which led to paths like "std::slice::into_vec::into_vec".
2015-12-12Include type name in symbol for methodsSeo Sanghyeon-6/+3
2015-12-07Remove some unnecessary indirection from HIR structuresVadim Petrochenkov-4/+4
2015-11-26split the metadata code into rustc_metadataAriel Ben-Yehuda-3/+3
tests & rustdoc still broken
2015-11-20Add E0517, E0518 for repr() errorsManish Goregaokar-15/+14
2015-11-18Port the `map` construction code to use the new visitor.Niko Matsakis-20/+34
2015-11-16rename `ast::ImplItem_::*ImplItem` to `ast::ImplItemKind::*`Oliver Schneider-1/+1
2015-11-16ImplItem_ -> ImplItemKind renameOliver Schneider-6/+6
2015-11-16rename ImplItem_::*ImplItem to ImplItem_::*Oliver Schneider-8/+7
[breaking change]
2015-11-13simplify HIR folder so that it only maps 1 item to 1 item,Niko Matsakis-3/+3
removing a bunch of asserts
2015-10-27Auto merge of #29327 - sanxiyn:argument, r=nrcbors-27/+22
Fix #24114.
2015-10-27Remove NodeArgSeo Sanghyeon-27/+1
2015-10-27Distinguish argument from local variableSeo Sanghyeon-0/+21
2015-10-25syntax/rustc_front: Simplify VariantData::fieldsVadim Petrochenkov-1/+1
And use VariantData instead of P<VariantData> in Item_ and Variant_
2015-10-14Rollup merge of #29006 - arielb1:callee-outlives-call, r=pnkfelixManish Goregaokar-1/+4
This rather crucial requirement was not checked. In most cases, that didn't cause any trouble because the argument types are required to outlive the call and are subtypes of a subformula of the callee type. However, binary ops are taken by ref only indirectly, without it being marked in the argument types, which led to the argument types not being constrained anywhere causing spurious errors (as these are basically unconstrainable, I don't think this change can break code). Of course, the old way was also incorrent with contravariance, but that is still unsound for other reasons. This also improves rustc::front to get RUST_LOG to *somewhat* work. Fixes #28999. That issue is one of the several regression introduced by #28669. r? @pnkfelix
2015-10-13Merge VariantData and VariantData_Vadim Petrochenkov-2/+2
2015-10-13Merge struct fields and struct kindVadim Petrochenkov-6/+7
2015-10-13Dict -> Struct, StructDef -> VariantData, def -> dataVadim Petrochenkov-8/+8
2015-10-13Remove now redundant NodeId from VariantVadim Petrochenkov-1/+1
2015-10-13Decouple structure kinds from NodeIdsVadim Petrochenkov-4/+4
2015-10-13Unify structures and enum variants in HIRVadim Petrochenkov-19/+8
2015-10-12require a method callee's type to outlive the callAriel Ben-Yehuda-1/+4
This rather crucial requirement was not checked. In most cases, that didn't cause any trouble because the argument types are required to outlive the call and are subtypes of a subformula of the callee type. However, binary ops are taken by ref only indirectly, without it being marked in the argument types, which led to the argument types not being constrained anywhere causing spurious errors (as these are basically unconstrainable, I don't think this change can break code). Of course, the old way was also incorrent with contravariance, but that is still unsound for other reasons. This also improves rustc::front to get RUST_LOG to *somewhat* work. Fixes #28999
2015-10-08typos: fix a grabbag of typos all over the placeCristi Cobzarenco-1/+1
2015-10-03Check attribute usageSeo Sanghyeon-0/+110
2015-10-01remove support method for synthetic default method idsNiko Matsakis-16/+0
2015-10-01Convert DefId to use DefIndex, which is an index into a list ofNiko Matsakis-78/+416
paths, and construct paths for all definitions. Also, stop rewriting DefIds for closures, and instead just load the closure data from the original def-id, which may be in another crate.
2015-10-01stop updating `parent_node_id` when there is no corresponding map entryNiko Matsakis-6/+1