about summary refs log tree commit diff
path: root/src/librustc_save_analysis
AgeCommit message (Collapse)AuthorLines
2020-04-27Accept `LocalDefId` as keyt for `names_imported_by_glob_use`marmeladema-1/+1
and `maybe_unused_trait_import` queries
2020-04-27Use `LocalDefId` in `typeck_tables_of` and `used_trait_imports` queriesmarmeladema-1/+1
2020-04-24Split out the `Generator` case from `DefKind::Closure`.Eduard-Mihai Burtescu-1/+2
2020-04-24add a few more DefKindsmark-2/+15
make Map::def_kind take LocalDefId Co-Authored-By: Vadim Petrochenkov <vadim.petrochenkov@gmail.com> crates are DefKind::Mod
2020-04-19Dogfood more or_patterns in the compilerJosh Stone-33/+41
2020-04-14Do not use `DUMMY_HIR_ID` as placeholder value in node_id_to_hir_id tablemarmeladema-5/+8
Some helpers functions have been introduced to deal with (buggy) cases where either a `NodeId` or a `DefId` do not have a corresponding `HirId`. Those cases are tracked in issue #71104.
2020-04-10librustc_middle: return LocalDefId instead of DefId in local_def_id_from_node_idmarmeladema-22/+43
2020-04-10librustc_middle: return LocalDefId instead of DefId in ↵marmeladema-3/+3
opt_local_def_id_from_node_id
2020-03-31more clippy fixesMatthias Krüger-1/+1
use is_empty() instead of len comparison (clippy::len_zero) use if let instead of while let loop that never loops (clippy::never_loop) remove redundant returns (clippy::needless_return) remove redundant closures (clippy::redundant_closure) use if let instead of match and wildcard pattern (clippy::single_match) don't repeat field names redundantly (clippy::redundant_field_names)
2020-03-30Use if let instead of match when only matching a single variant ↵Matthias Krüger-4/+3
(clippy::single_match) Makes code more compact and reduces nestig.
2020-03-30rustc -> rustc_middle part 3 (rustfmt)Mazdak Farrokhzad-6/+6
2020-03-30rustc -> rustc_middle part 2Mazdak Farrokhzad-6/+6
2020-03-30rustc -> rustc_middle part 1Mazdak Farrokhzad-1/+1
2020-03-28Auto merge of #70261 - Centril:angle-args-partition, r=varkorbors-2/+2
Move arg/constraint partition check to validation & improve recovery - In the first commit, we move the check rejecting e.g., `<'a, Item = u8, String>` from the parser into AST validation. - We then use this to improve the code for parsing generic arguments. - And we add recovery for e.g., `<Item = >` (missing), `<Item = 42>` (constant), and `<Item = 'a>` (lifetime). This is also preparatory work for supporting https://github.com/rust-lang/rust/issues/70256. r? @varkor
2020-03-27clarify hir_id <-> node_id method namesBastian Kauschke-25/+25
2020-03-27parse: move constraint/arg restriction to ast_validation.Mazdak Farrokhzad-2/+2
2020-03-24rustc: remove rustc_hir_pretty dependency.Mazdak Farrokhzad-5/+7
2020-03-22remove redundant closures (clippy::redundant_closure)Matthias Krüger-11/+8
2020-03-21Rollup merge of #69965 - mark-i-m:codegen-utils, r=eddybMazdak Farrokhzad-3/+2
Refactorings to get rid of rustc_codegen_utils r? @eddyb cc #45276 After this, the only modules left in `rustc_codegen_utils` are - `link`: a bunch of linking-related functions (many dealing with file names). These are mostly consumed by save analysis, rustc_driver, rustc_interface, and of course codegen. I assume they live here because we don't want a dependency of save analysis on codegen... Perhaps they can be moved to librustc? - ~`symbol_names` and `symbol_names_test`: honestly it seems odd that `symbol_names_test` is not a submodule of `symbol_names`. It seems like these could honestly live in their own crate or move to librustc. Already name mangling is exported as the `symbol_name` query.~ (move it to its own crate) I don't mind doing either of the above as part of this PR or a followup if you want.
2020-03-20remove redundant returns (clippy::needless_return)Matthias Krüger-2/+2
2020-03-19Refactorings to begin getting rid of rustc_codegen_utilsMark Mansi-3/+2
2020-03-16use direct imports for `rustc::{lint, session}`.Mazdak Farrokhzad-3/+4
2020-03-15Rollup merge of #69988 - petrochenkov:nomacrodef, r=CentrilMazdak Farrokhzad-13/+0
rustc_metadata: Remove `rmeta::MacroDef` And other related cleanups. Follow-up to https://github.com/rust-lang/rust/pull/66364. r? @Centril
2020-03-15Rollup merge of #69589 - petrochenkov:maccall, r=CentrilMazdak Farrokhzad-8/+8
ast: `Mac`/`Macro` -> `MacCall` It's now obvious that these refer to macro calls rather than to macro definitions. It's also a single name instead of two different names in different places. `rustc_expand` usually calls macro calls in a wide sense (including attributes and derives) "macro invocations", but structures and variants renamed in this PR are only relevant to fn-like macros, so it's simpler and clearer to just call them calls. cc https://github.com/rust-lang/rust/pull/63586#discussion_r314232513 r? @eddyb
2020-03-14rustc_metadata: Remove `rmeta::MacroDef`Vadim Petrochenkov-13/+0
Use `ast::MacroDef` instead. Also remove `Session::imported_macro_spans`, external macros have spans now.
2020-03-12ast: `Mac`/`Macro` -> `MacCall`Vadim Petrochenkov-8/+8
2020-03-12Rollup merge of #69722 - estebank:negative-impl-span-ast, r=CentrilMazdak Farrokhzad-1/+1
Tweak output for invalid negative impl AST errors Use more accurate spans for negative `impl` errors. r? @Centril
2020-03-12Rollup merge of #69674 - mark-i-m:assoc-fn, r=matthewjasperMazdak Farrokhzad-1/+1
Rename DefKind::Method and TraitItemKind::Method r? @eddyb, @Centril, or @matthewjasper cc #69498 #60163
2020-03-08Rollup merge of #69422 - JohnTitor:remove-unwrap, r=XanewokMazdak Farrokhzad-2/+5
Remove use of `unwrap()` from save-analysis Fix #69409, fix #69416
2020-03-06Don't redundantly repeat field names (clippy::redundant_field_names)Matthias Krüger-2/+2
2020-03-06Auto merge of #69586 - petrochenkov:unmerge, r=Centrilbors-9/+4
ast: Unmerge structures for associated items and foreign items Follow-up to https://github.com/rust-lang/rust/pull/69194. r? @Centril
2020-03-04Tweak output for invalid negative impl AST errorsEsteban Küber-1/+1
2020-03-03DefKind::Method -> DefKind::AssocFnMark Mansi-1/+1
2020-03-01ast: Unmerge structures for associated items and foreign itemsVadim Petrochenkov-9/+4
2020-03-01Rollup merge of #69605 - JohnTitor:opt-def-id, r=petrochenkovYuki Okushi-1/+1
Use `opt_def_id()` over `def_id()` Fixes #69588
2020-03-01Use `opt_def_id()` over `def_id()`Yuki Okushi-1/+1
2020-03-01Auto merge of #69592 - petrochenkov:nosyntax, r=Centrilbors-12/+12
Rename `libsyntax` to `librustc_ast` This was the last rustc crate that wasn't following the `rustc_*` naming convention. Follow-up to https://github.com/rust-lang/rust/pull/67763.
2020-02-29Rename `syntax` to `rustc_ast` in source codeVadim Petrochenkov-12/+12
2020-02-29Make it build againVadim Petrochenkov-1/+1
2020-02-29don't use question mark operator on Err(), return the Result directly instead.Matthias Krüger-1/+1
2020-02-25Address review commentYuki Okushi-11/+11
2020-02-24Remove use of `unwrap()` from save-analysisYuki Okushi-8/+11
2020-02-24parse/ast: move `Defaultness` into variants.Mazdak Farrokhzad-20/+22
2020-02-24add `Span` to `ast::Defaultness::Default`.Mazdak Farrokhzad-1/+1
2020-02-23Rollup merge of #69375 - Menschenkindlein:master, r=Dylan-DPCDylan DPC-7/+7
Rename CodeMap to SourceMap follow up See https://github.com/rust-lang/rust/issues/51574
2020-02-23Rollup merge of #69361 - Centril:free-ty-alias, r=petrochenkovDylan DPC-5/+11
parse: allow `type Foo: Ord` syntactically This addresses: > (Work still remains to fuse this with free type aliases, but this can be done later.) in https://github.com/rust-lang/rust/pull/69194. r? @petrochenkov
2020-02-22Rename CodeMap to SourceMap follow upMaxim Zholobak-7/+7
2020-02-22parse: allow `type Foo: Ord` syntactically.Mazdak Farrokhzad-5/+11
2020-02-19Make lookup of associated item by name O(log n)Dylan MacKenzie-9/+10
2020-02-18Rollup merge of #69194 - Centril:assoc-extern-fuse, r=petrochenkovMazdak Farrokhzad-25/+34
parse: fuse associated and extern items up to defaultness Language changes: - The grammar of extern `type` aliases is unified with associated ones, and becomes: ```rust TypeItem = "type" ident generics {":" bounds}? where_clause {"=" type}? ";" ; ``` Semantic restrictions (`ast_validation`) are added to forbid any parameters in `generics`, any bounds in `bounds`, and any predicates in `where_clause`, as well as the presence of a type expression (`= u8`). (Work still remains to fuse this with free `type` aliases, but this can be done later.) - The grammar of constants and static items (free, associated, and extern) now permits the absence of an expression, and becomes: ```rust GlobalItem = {"const" {ident | "_"} | "static" "mut"? ident} {"=" expr}? ";" ; ``` - A semantic restriction is added to enforce the presence of the expression (the body). - A semantic restriction is added to reject `const _` in associated contexts. Together, these changes allow us to fuse the grammar of associated items and extern items up to `default`ness which is the main goal of the PR. ----------------------- We are now very close to fully fusing the entirely of item parsing and their ASTs. To progress further, we must make a decision: should we parse e.g. `default use foo::bar;` and whatnot? Accepting that is likely easiest from a parsing perspective, as it does not require using look-ahead, but it is perhaps not too onerous to only accept it for `fn`s (and all their various qualifiers), `const`s, `static`s, and `type`s. r? @petrochenkov