about summary refs log tree commit diff
path: root/src/librustc/ich
AgeCommit message (Collapse)AuthorLines
2019-05-23syntax: Turn `token::Lit` into a structVadim Petrochenkov-16/+18
2019-05-13Pass a `Symbol` to `check_name`, `emit_feature_err`, and related functions.Nicholas Nethercote-10/+12
2019-05-11Introduce `hir::Lit` not keeping the original tokenVadim Petrochenkov-0/+2
2019-05-11Keep the original token in `ast::Lit`Vadim Petrochenkov-16/+17
2019-05-11Turn `ast::Lit` into a structVadim Petrochenkov-1/+5
2019-05-10Remove hir::ExprKind::If and replace it with lowering to hir::ExprKind::Match.Mazdak Farrokhzad-0/+1
2019-05-07Implement built-in await syntaxTaylor Cramer-0/+1
Adds support for .await under the existing async_await feature gate. Moves macro-like await! syntax to the await_macro feature gate. Removes support for `await` as a non-keyword under the `async_await` feature.
2019-05-04Hash all of the import_ids for the TraitCandidate.Jesper Steen Møller-6/+6
2019-05-04Use binding autoref, because we can.Jesper Steen Møller-2/+2
2019-05-04Improved name: first_import_idJesper Steen Møller-2/+2
2019-05-04Fix #45268 by saving all NodeId's for resolved traits.Jesper Steen Møller-10/+11
2019-04-23Add rustc_allow_const_fn_ptrTaylor Cramer-0/+1
2019-04-22Remove double trailing newlinesvarkor-2/+0
2019-04-03Deny internal lints in librustcflip1995-5/+3
2019-03-16Refactor away `NestedMetaItemKind`Vadim Petrochenkov-3/+1
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16Rename `MetaItem::ident` to `MetaItem::path`Vadim Petrochenkov-1/+1
2019-03-16syntax: Do not accidentally treat multi-segment meta-items as single-segmentVadim Petrochenkov-2/+3
2019-03-13Use derive macro for HashStableJohn Kåre Alsaker-2371/+0
2019-03-10Make the rustc driver and interface demand drivenJohn Kåre Alsaker-5/+0
2019-03-08Auto merge of #58915 - ljedrz:deprecate_nodeid_methods, r=Zoxcbors-2/+1
HirIdification: almost there The next iteration of HirIdification (#57578). Replaces a bunch of `NodeId` method calls (mostly `as_local_node_id`) with `HirId` ones. Removes `NodeId` from: - [x] `PathSegment` - [x] `PatKind` - [x] `Destination` (replaces it with `HirId`) In addition this PR also removes `Visitor::visit_def_mention`, which doesn't seem to be doing anything.
2019-03-08Auto merge of #58013 - Zoxc:stable-hash-macro-simple, r=oli-obkbors-6/+0
Create a derive macro for HashStable and allow proc macros in rustc A combination of https://github.com/rust-lang/rust/pull/56864 and https://github.com/rust-lang/rust/pull/56795. There were complications with using `serde_derive` as rustc doesn't know which crate to use for the host when there is a serde_derive in the sysroot and cargo passes another on the command line built from crates.io. r? @eddyb (for proc macro changes) @alexcrichton (for rustbuild changes) @michaelwoerister (for the macro itself)
2019-03-07hir: remove NodeId from PatKindljedrz-1/+1
2019-03-07hir: remove NodeId from PathSegmentljedrz-1/+0
2019-03-05Implement Hash for new typesvarkor-0/+27
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05Create a derive macro for HashStableJohn Kåre Alsaker-6/+0
2019-03-03Auto merge of #58673 - matthewjasper:typeck-ptr-coercions, r=pnkfelixbors-0/+1
[NLL] Type check operations with pointer types It seems these were forgotten about. Moving to `Rvalue::AddressOf` simplifies the coercions from references, but I want this to be fixed as soon as possible. r? @pnkfelix
2019-03-02hir: HirIdify Impl&TraitItemIdljedrz-4/+4
2019-03-02hir: remove NodeId from VariantDataljedrz-3/+3
2019-03-02hir: remove NodeId from Pat and FieldPatljedrz-2/+0
2019-03-02hir: remove NodeId from Itemljedrz-1/+0
2019-03-02hir: remove NodeId from ForeignItemljedrz-1/+0
2019-03-02hir: remove NodeId from StructFieldljedrz-1/+0
2019-03-01Auto merge of #58754 - ljedrz:I_hate_NodeIds, r=Zoxcbors-12/+2
Remove NodeId from more HIR nodes The next iteration of HirIdification (#57578). Removes `NodeId` from: - [x] `Stmt` - [x] `Local` - [x] `Field` - [x] `AnonConst` - [x] `TraitItem` - [x] `ImplItem` - [x] `TypeBinding` - [x] `Arg` - [x] `TraitRef` - [x] `VisibilityKind` It will most probably break clippy again; I'd appreciate a **delegate** again if/when it is good to go so I can attach a clippy fix later. r? @Zoxc
2019-03-01hir: remove NodeId from VisibilityKindljedrz-2/+1
2019-03-01hir: remove NodeId from TraitRefljedrz-2/+1
2019-03-01hir: remove NodeId from Argljedrz-1/+0
2019-03-01hir: remove NodeId from TypeBindingljedrz-1/+0
2019-03-01hir: remove NodeId from ImplItemljedrz-1/+0
2019-03-01hir: remove NodeId from TraitItemljedrz-1/+0
2019-03-01hir: remove NodeId from AnonConstljedrz-1/+0
2019-03-01hir: remove NodeId from Fieldljedrz-1/+0
2019-03-01hir: remove NodeId from Localljedrz-1/+0
2019-03-01hir: remove NodeId from Stmtljedrz-1/+0
2019-03-01Put Local, Static and Promoted as one Base variant of PlaceSantiago Pastorino-3/+3
2019-02-27Rename variadic to c_variadicDan Robertson-2/+2
Function signatures with the `variadic` member set are actually C-variadic functions. Make this a little more explicit by renaming the `variadic` boolean value, `c_variadic`.
2019-02-27Support defining C compatible variadic functionsDan Robertson-1/+2
Add support for defining C compatible variadic functions in unsafe rust with extern "C".
2019-02-26Auto merge of #58561 - ljedrz:HirIdify_some_nodes, r=Zoxcbors-8/+0
Remove NodeId from some HIR nodes The next iteration of https://github.com/rust-lang/rust/pull/57578. Removes `NodeId` from: - [x] `Lifetime` - [x] `Ty` - [x] `GenericParam` - [x] `WhereClause` - [x] `WhereEqPredicate` - [x] `MacroDef` - [x] `Block` - [x] `Expr` r? @Zoxc
2019-02-25Auto merge of #57609 - matthewjasper:more-restrictive-match, r=pnkfelixbors-1/+6
Use normal mutable borrows in matches `ref mut` borrows are currently two-phase with NLL enabled. This changes them to be proper mutable borrows. To accommodate this, first the position of fake borrows is changed: ```text [ 1. Pre-match ] | [ (old create fake borrows) ] [ 2. Discriminant testing -- check discriminants ] <-+ | | | (once a specific arm is chosen) | | | [ (old read fake borrows) ] | [ 3. Create "guard bindings" for arm ] | [ (create fake borrows) ] | | | [ 4. Execute guard code ] | [ (read fake borrows) ] --(guard is false)-----------+ | | (guard results in true) | [ 5. Create real bindings and execute arm ] | [ Exit match ] ``` The following additional changes are made to accommodate `ref mut` bindings: * We no longer create fake `Shared` borrows. These borrows are no longer needed for soundness, just to avoid some arguably strange cases. * `Shallow` borrows no longer conflict with existing borrows, avoiding conflicting access between the guard borrow access and the `ref mut` borrow. There is some further clean up done in this PR: * Avoid the "later used here" note for Shallow borrows (since it's not relevant with the message provided) * Make any use of a two-phase borrow activate it. * Simplify the cleanup_post_borrowck passes into a single pass. cc #56254 r? @nikomatsakis
2019-02-24hir: remove NodeId from Exprljedrz-1/+0
2019-02-24hir: remove NodeId from Blockljedrz-1/+0