Mazdak Farrokhzad
2ba1d94f7a
Rollup merge of #61866 - sinkuu:redundant_clone, r=petrochenkov
...
Remove redundant `clone()`s
2019-06-16 06:05:18 +02:00
Mazdak Farrokhzad
be09427b11
Rollup merge of #61813 - matthewjasper:remove-unnecessary-symbol-ops, r=petrochenkov
...
Remove some unnecessary symbol interner ops
* Don't gensym symbols that don't need to worry about colliding with other symbols
* Use symbol constants instead of interning string literals in a few places.
* Don't generate a module in `__register_diagnostic`
r? @petrochenkov
2019-06-15 17:45:02 +02:00
Shotaro Yamada
165842ba1f
Use slice::from_ref instead of cloning
2019-06-15 20:46:00 +09:00
Matthew Jasper
4e212c6ddc
Avoid some unnecessary symbol interner operations
2019-06-14 18:54:58 +01:00
bors
3f511ade5b
Auto merge of #60669 - c410-f3r:attrs-fn, r=petrochenkov
...
Allow attributes in formal function parameters
Implements https://github.com/rust-lang/rust/issues/60406 .
This is my first contribution to the compiler and since this is a large and complex project, I am not fully aware of the consequences of the changes I have made.
**TODO**
- [x] Forbid some built-in attributes.
- [x] Expand cfg/cfg_attr
2019-06-12 07:38:01 +00:00
Vadim Petrochenkov
93eb63c9a5
syntax: Rename variants of SyntaxExtension for consistency
2019-06-10 21:34:26 +03:00
Vadim Petrochenkov
0468eb63ad
syntax: Improve documentation of SyntaxExtension
2019-06-10 21:33:33 +03:00
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
edb925a91f
syntax: Use MultiItemModifier for built-in derives
2019-06-10 21:32:48 +03:00
Vadim Petrochenkov
5a6ebec018
syntax: Remove SyntaxExtension::MultiDecorator and MultiItemDecorator
2019-06-10 21:25:56 +03:00
Vadim Petrochenkov
97f4e700c2
syntax: Remove SyntaxExtension::IdentTT and IdentMacroExpander
2019-06-10 21:19:40 +03:00
Caio
1eaaf440d5
Allow attributes in formal function parameters
2019-06-09 07:58:40 -03:00
Mazdak Farrokhzad
3ba82f7cd8
pacify tidy.
2019-06-09 04:16:34 +02:00
Mazdak Farrokhzad
f86719a111
Some more cleanup in libsyntax::ext::tt::quoted
2019-06-09 04:16:34 +02:00
Mazdak Farrokhzad
ab7d75d89b
Cleanups in parse_sep_and_kleene_op.
2019-06-09 04:16:34 +02:00
Mazdak Farrokhzad
39fbcfb277
Support ? Kleene operator in 2015.
2019-06-09 04:16:33 +02:00
Mazdak Farrokhzad
6b71fba9c1
Rollup merge of #61669 - petrochenkov:tokderef2, r=oli-obk
...
syntax: Remove `Deref` impl from `Token`
Follow up to https://github.com/rust-lang/rust/pull/61541
r? @oli-obk
2019-06-09 00:20:38 +02:00
Mazdak Farrokhzad
8dea8464f4
Rollup merge of #61646 - L117:master, r=Centril
...
Remove useless allocations in macro_rules follow logic.
Closes #61543
2019-06-09 00:20:32 +02:00
Vadim Petrochenkov
25b05147b3
syntax: Remove Deref impl from Token
2019-06-08 22:38:23 +03:00
Vadim Petrochenkov
0ca3c2f881
syntax: Move most of the TokenKind methods to Token
2019-06-08 22:38:12 +03:00
Vadim Petrochenkov
ffe23475cb
syntax: Keep full Tokens for macro_rules separators
2019-06-08 20:36:20 +03:00
L117
7a74f33f90
Remove useless allocations in macro_rules follow logic.
2019-06-08 09:39:52 +10:00
Vadim Petrochenkov
3da094319c
parser: self.span -> self.token.span
2019-06-07 13:51:23 +03:00
Vadim Petrochenkov
3a31f0634b
Address review comments
2019-06-06 14:04:33 +03:00
Vadim Petrochenkov
ff40e37b98
Some code cleanup and tidy/test fixes
2019-06-06 14:04:02 +03:00
Vadim Petrochenkov
67ce3f4589
syntax: Switch function parameter order in TokenTree::token
2019-06-06 14:04:02 +03:00
Vadim Petrochenkov
f745e5f9b6
syntax: Remove duplicate span from token::Ident
2019-06-06 14:04:02 +03:00
Vadim Petrochenkov
4c5d773b4d
syntax: Remove duplicate span from token::Lifetime
2019-06-06 14:04:02 +03:00
Vadim Petrochenkov
5e693531ff
syntax: Add some helper methods to Token
2019-06-06 14:04:02 +03:00
Vadim Petrochenkov
aa6fba98ae
syntax: Use Token in Parser
2019-06-06 14:04:02 +03:00
Vadim Petrochenkov
e0127dbf81
syntax: Use Token in TokenTree::Token
2019-06-06 14:03:15 +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
3816958f18
Implemented for function bounds, type bounds, and named existential types.
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
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
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
bors
e70d5386d7
Auto merge of #61140 - estebank:attr-diagnostics, r=michaelwoerister
...
Reword malformed attribute input diagnostics
- Handle empty `cfg_attr` attribute
- Reword empty `derive` attribute error
- Use consistend error message: "malformed `attrname` attribute input"
- Provide suggestions when possible
- Move note/help to label/suggestion
- Use consistent wording "ill-formed" -> "malformed"
- Move diagnostic logic out of parser
Split up from https://github.com/rust-lang/rust/pull/61026 , where there's prior conversation.
2019-05-27 20:12:14 +00:00
Nicholas Nethercote
33a3206dc5
Use Symbol equality in may_begin_with and parse_nt.
2019-05-27 14:05:05 +10:00
Nicholas Nethercote
58c68d00fd
Pass symbols to ExtCtxt::std_path instead of strings.
...
Because this function is hot.
Also remove the dead `ty_option` function.
2019-05-27 13:58:38 +10:00
Nicholas Nethercote
26451ef7b5
Avoid unnecessary internings.
...
Most involving `Symbol::intern` on string literals.
2019-05-27 13:58:38 +10:00
Esteban Küber
609ffa1a89
Reword malformed attribute input diagnostics
...
- Handle empty `cfg_attr` attribute
- Reword empty `derive` attribute error
- Use consistend error message: "malformed `attrname` attribute input"
- Provide suggestions when possible
- Move note/help to label/suggestion
- Use consistent wording "ill-formed" -> "malformed"
- Move diagnostic logic out of parser
2019-05-25 11:55:50 -07:00
Esteban Küber
ee7593e0ac
Revert changes that belong to separate PR
2019-05-24 15:17:32 -07:00
Esteban Küber
5c5fa775e5
review comments
2019-05-24 11:50:21 -07:00
Esteban Küber
24160171e4
Tweak macro parse errors when reaching EOF during macro call parse
...
- Add detail on origin of current parser when reaching EOF and stop
saying "found <eof>" and point at the end of macro calls
- Handle empty `cfg_attr` attribute
- Reword empty `derive` attribute error
2019-05-24 11:49:33 -07:00
bors
f688ba6089
Auto merge of #61075 - Centril:rollup-1ugmcqu, r=Centril
...
Rollup of 7 pull requests
Successful merges:
- #60981 (Bump compiler-builtins to 0.1.15)
- #61014 (Make -Zemit-artifact-notifications also emit the artifact type)
- #61043 (Disable LLVM/debug assertions in gnu-full-bootstrap)
- #61046 (Fix ICE with inconsistent macro matchers)
- #61055 (Solaris CI: Build with dilos2 stable)
- #61057 (Revert "Add implementations of last in terms of next_back on a bunch of DoubleEndedIterators.")
- #61073 (librustc_errors: Remove unused annotation style `OldSchoolNoteText`)
Failed merges:
r? @ghost
2019-05-23 07:31:24 +00:00
Mazdak Farrokhzad
1ea0b1d274
Rollup merge of #61046 - mark-i-m:transcribe-fix, r=petrochenkov
...
Fix ICE with inconsistent macro matchers
Fixes #61033
r? @petrochenkov
2019-05-23 08:37:15 +02:00
bors
85334c5092
Auto merge of #60174 - matthewjasper:add-match-arm-scopes, r=pnkfelix
...
Add match arm scopes and other scope fixes
* Add drop and lint scopes for match arms.
* Lint attributes are now respected on match arms.
* Make sure we emit a StorageDead if we diverge when initializing a temporary.
* Adjust MIR pretty printing of scopes for locals.
* Don't generate duplicate lint scopes for `let statements`.
* Add some previously missing fake borrows for matches.
closes #46525
cc @rust-lang/compiler
2019-05-23 04:48:21 +00: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