Commit graph

2008 commits

Author SHA1 Message Date
Vadim Petrochenkov
8edbbacbca syntax: Remove SyntaxExtension::DeclMacro
It's a less powerful duplicate of `SyntaxExtension::NormalTT`
2019-06-10 21:33:31 +03:00
Vadim Petrochenkov
738e14565d syntax: Use Token in visitors and fix a mut visitor test 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov
99b27d749c syntax: Rename Token into TokenKind 2019-06-06 14:03:14 +03:00
Vadim Petrochenkov
eac3846b65 Always use token kinds through token module rather than Token type 2019-06-06 14:01:57 +03:00
Alexander Regueiro
a71d55701e Addressed points raised in review. 2019-06-05 21:09:27 +01:00
Alexander Regueiro
dce27cba78 Enabled Self in type aliases. 2019-06-05 21:09:26 +01:00
Alexander Regueiro
35585c499f Aggregation of drive-by cosmetic changes. 2019-06-05 21:09:26 +01:00
Nicholas Nethercote
4c9ecbf3d1 Add modernize_and_adjust methods.
These combine two `HygieneData::with` calls into one.
2019-06-05 09:09:35 +10:00
Nicholas Nethercote
8797e8cabd Move modern calls inside glob_adjust and reverse_glob_adjust. 2019-06-05 07:43:14 +10:00
Eduard-Mihai Burtescu
d0c78dd7aa
syntax: revert ast::AsyncArgument and associated changes.
Here follows the main reverts applied in order to make this commit:

Revert "Rollup merge of #60676 - davidtwco:issue-60674, r=cramertj"

This reverts commit 45b09453db, reversing
changes made to f6df1f6c30.

Revert "Rollup merge of #60437 - davidtwco:issue-60236, r=nikomatsakis"

This reverts commit 16939a50ea, reversing
changes made to 12bf981552.

Revert "Rollup merge of #59823 - davidtwco:issue-54716, r=cramertj"

This reverts commit 62d1574876, reversing
changes made to 4eff8526a7.
2019-06-03 10:20:35 +01:00
Eduard-Mihai Burtescu
f7a4c9d7b5 rustc: collect upvars from HIR, instead of during name resolution. 2019-06-01 20:44:05 +03:00
Eduard-Mihai Burtescu
648b4d884d rustc_resolve: never push ClosureRibKind to label_ribs. 2019-06-01 20:28:59 +03:00
Eduard-Mihai Burtescu
ed1bbbb545 rustc: remove Res::Upvar. 2019-06-01 20:28:48 +03:00
Eduard-Mihai Burtescu
340b91e2ff rustc: remove has_parent from hir::Upvar. 2019-06-01 19:17:23 +03:00
Eduard-Mihai Burtescu
b13d0407d4 rustc: remove closure ID from Res::Upvar. 2019-06-01 19:17:23 +03:00
Eduard-Mihai Burtescu
961fe5479f rustc: use indexmap instead of a plain vector for upvars. 2019-06-01 19:17:22 +03:00
Eduard-Mihai Burtescu
9fe0052e54 rustc: remove the closure ID from hir::Upvar's parent field. 2019-06-01 19:01:09 +03:00
Eduard-Mihai Burtescu
4b9670a245 rustc: remove the index field from Res::Upvar. 2019-06-01 19:01:09 +03:00
Eduard-Mihai Burtescu
26e61dd826 rustc: replace Res in hir::Upvar with only Local/Upvar data. 2019-06-01 19:01:09 +03:00
bors
0bfbaa6e8d Auto merge of #61253 - nnethercote:avoid-hygiene_data-lookups, r=petrochenkov
Avoid `hygiene_data` lookups

These commits mostly introduce compound operations that allow two close adjacent `hygiene_data` lookups to be combined.

r? @petrochenkov
2019-05-30 16:54:13 +00:00
Nicholas Nethercote
caea42f6c8 Introduce and use SyntaxContext::outer_expn_info().
It reduces two `hygiene_data` accesses to one on some hot paths.
2019-05-29 09:32:56 +10:00
Nicholas Nethercote
828f6fdbe5 Introduce and use Mark::outer_is_descendant_of().
It reduces two `hygiene_data` accesses to one on some hot paths.
2019-05-29 09:32:56 +10:00
Eduard-Mihai Burtescu
120ce12016 Rename TraitOrImpl to Assoc and trait_or_impl to assoc. 2019-05-29 00:35:14 +03:00
Andrew Xu
46b9ed4fa1 Rename "Associated*" to "Assoc*"
We are going to uniform the terminology of all associated items.
Methods that may or may not have `self` are called "associated
functions". Because `AssociatedFn` is a bit long, we rename `Associated`
to `Assoc`.
2019-05-26 17:49:02 +08:00
Vadim Petrochenkov
a1885cdba3 Restore the old behavior of the rustdoc keyword check + Fix rebase 2019-05-22 20:20:12 +03:00
Vadim Petrochenkov
c389a39c97 Eliminate unnecessary Ident::with_empty_ctxts 2019-05-22 19:48:56 +03:00
Vadim Petrochenkov
59a382122f Simplify use of keyword symbols 2019-05-22 19:48:56 +03:00
John Kåre Alsaker
a1f2dceaeb Move edition outside the hygiene lock and avoid accessing it 2019-05-21 18:17:05 +02:00
Nicholas Nethercote
88d29992bd Remove Symbol::gensym(). 2019-05-20 14:46:55 +10:00
Nicholas Nethercote
f6637f3fcc Move is_gensymed from Symbol to Ident.
Note that the `is_gensymed` call on `primitive_types` is unnecessary
because that table only contains the name of primitive types (e.g.
`i32`) and never contains gensyms.
2019-05-20 14:46:30 +10:00
Fabian Drinck
b18de52080 Declare DefIndex with the newtype_index macro 2019-05-18 13:19:33 +02:00
Nicholas Nethercote
86cc326d06 Avoid unnecessary interning in Ident::from_str() calls.
A lot of these static symbols are pre-interned.
2019-05-17 20:10:50 +10:00
Nicholas Nethercote
999c1fc281 Remove the equality operation between Symbol and strings.
And also the equality between `Path` and strings, because `Path` is made
up of `Symbol`s.
2019-05-13 09:31:30 +10:00
Nicholas Nethercote
fb084a48e2 Pass a Symbol to check_name, emit_feature_err, and related functions. 2019-05-13 09:29:22 +10:00
Vadim Petrochenkov
ee6d315200 cleanup: Remove DefIndexAddressSpace 2019-05-09 00:46:38 +03:00
Eduard-Mihai Burtescu
8d9f4a128c rustc: rename all occurences of "freevar" to "upvar". 2019-05-05 18:49:32 +03:00
bors
5d8fd98d34 Auto merge of #60544 - petrochenkov:parder, r=eddyb
Rename `PathResolution` to `PartialRes`

Don't use `PartialRes` when `Res` is enough.
Rename `Res::kind_name` to `Res::descr` for consistency.
Remove `Res::Label`, paths can never resolve to labels.

Some further cleanup after https://github.com/rust-lang/rust/pull/60462
r? @eddyb
2019-05-05 12:30:14 +00:00
Jesper Steen Møller
fc34d5f608 Removed unneccesary reference for trait name 2019-05-04 20:29:35 +02:00
Jesper Steen Møller
42255d93ef Reuse 'kind' parameter. 2019-05-04 20:29:34 +02:00
Jesper Steen Møller
a300cab526 Revert the introduced typedefs 2019-05-04 20:29:34 +02:00
Jesper Steen Møller
5deec307f7 Fix #45268 by saving all NodeId's for resolved traits. 2019-05-04 20:29:33 +02:00
Vadim Petrochenkov
7da9250fb5 Remove Res::Label
Paths can never resolve to labels
2019-05-04 17:22:00 +03:00
Vadim Petrochenkov
85ddd1dc58 Rename Res::kind_name to Res::descr for consistency 2019-05-04 16:55:46 +03:00
Vadim Petrochenkov
917a0fbc1b Rename PathResolution to PartialRes
Don't use `PartialRes` when `Res` is enough
2019-05-04 16:55:46 +03:00
Eduard-Mihai Burtescu
ff174fe09e rustc: rename hir::def::Def to Res (short for "resolution"). 2019-05-03 22:50:19 +03:00
Eduard-Mihai Burtescu
b92b1a76e1 rustc: use DefKind instead of Def, where possible. 2019-05-03 22:50:09 +03:00
Eduard-Mihai Burtescu
a3fcab36d2 rustc: factor most DefId-containing variants out of Def and into DefKind. 2019-05-03 22:48:27 +03:00
David Wood
f47735c3dc
Ensure that users cannot use generated arguments.
This commit gensyms the generated ident for replacement arguments so
that users cannot refer to them. It also ensures that levenshtein
distance suggestions do not suggest gensymed identifiers.
2019-05-01 15:00:43 +01:00
David Wood
b05d5db87b
Ensure that drop order of async fn matches fn.
This commit modifies the lowering of `async fn` arguments so that the
drop order matches the equivalent `fn`.

Previously, async function arguments were lowered as shown below:

    async fn foo(<pattern>: <ty>) {
      async move {
      }
    } // <-- dropped as you "exit" the fn

    // ...becomes...
    fn foo(__arg0: <ty>) {
      async move {
        let <pattern> = __arg0;
      } // <-- dropped as you "exit" the async block
    }

After this PR, async function arguments will be lowered as:

    async fn foo(<pattern>: <ty>, <pattern>: <ty>, <pattern>: <ty>) {
      async move {
      }
    } // <-- dropped as you "exit" the fn

    // ...becomes...
    fn foo(__arg0: <ty>, __arg1: <ty>, __arg2: <ty>) {
      async move {
        let __arg2 = __arg2;
        let <pattern> = __arg2;
        let __arg1 = __arg1;
        let <pattern> = __arg1;
        let __arg0 = __arg0;
        let <pattern> = __arg0;
      } // <-- dropped as you "exit" the async block
    }

If `<pattern>` is a simple ident, then it is lowered to a single
`let <pattern> = <pattern>;` statement as an optimization.
2019-05-01 14:40:59 +01:00
Vadim Petrochenkov
fbbec76701 resolve: Consider erroneous imports used to avoid duplicate diagnostics 2019-04-28 22:36:57 +03:00