varkor
38121173e2
Rename MetaItem.node to MetaItem.kind
2019-09-26 18:21:48 +01:00
varkor
21bf983acb
Rename Stmt.node to Stmt.kind
2019-09-26 18:21:10 +01:00
varkor
17726f6b52
Rename Lit.node to Lit.kind
2019-09-26 18:21:09 +01:00
Oliver Scherer
7767e7fb16
Stabilize str::len, [T]::len, is_empty and str::as_bytes as const fn
2019-09-24 12:56:44 +02:00
Mazdak Farrokhzad
4ea77975ab
Rollup merge of #64066 - petrochenkov:softstab, r=matthewjasper
...
Support "soft" feature-gating using a lint
Use it for feature-gating `#[bench]`.
Closes https://github.com/rust-lang/rust/issues/63798 .
2019-09-08 00:07:31 +02:00
Vadim Petrochenkov
f7434aef26
Support "soft" feature-gating using a lint
...
Use it for feature-gating `#[bench]`
2019-09-07 21:37:51 +03:00
Alexander Regueiro
49d2fd1725
Aggregation of cosmetic changes made during work on REPL PRs: libsyntax
2019-09-07 16:29:04 +01:00
Vadim Petrochenkov
3dde650efa
Move injection of attributes from command line to libsyntax_ext
2019-09-06 23:46:16 +03:00
Kevin Per
e0ce9f8c0a
Cleanup: Consistently use Param instead of Arg #62426
2019-08-27 14:07:41 +02:00
Vadim Petrochenkov
6cb28b6617
Ident::with_empty_ctxt -> Ident::with_dummy_span
...
`Ident` has had a full span rather than just a `SyntaxContext` for a long time now.
2019-08-15 20:39:26 +03:00
Vadim Petrochenkov
73d2da0894
Remove Spanned from mk_name_value_item_str and expr_to_spanned_string
2019-08-15 11:44:22 +03:00
Caio
6a42b0b28d
Merge Variant and Variant_
2019-08-14 14:47:01 -03:00
Mark Rousskov
8849149745
Make mk_attr_id private to libsyntax
2019-08-05 08:48:22 -04:00
Mark Rousskov
24a491f40c
Drop explicit span argument from mk_name_value_item
2019-08-05 08:48:22 -04:00
Mark Rousskov
ab3fb1e775
Drop span argument from mk_list_item
2019-08-05 08:45:00 -04:00
Mark Rousskov
0f985817bd
Replace AstBuilder with inherent methods
2019-07-31 08:55:37 -04:00
Mark Rousskov
f78bf50dec
Remove span argument from mk_attr_{inner,outer}
...
Always the same as the passed MetaItem
2019-07-31 08:55:37 -04:00
Mark Rousskov
b2c5065b04
Remove Span argument from ExtCtxt::attribute
...
MetaItem.span was always equivalent
2019-07-31 08:55:37 -04:00
Mark Rousskov
0a42badd4c
Remove AttrId from Attribute constructors
2019-07-31 08:55:37 -04:00
Mark Rousskov
804f0f3c20
Unify spanned and non-spanned Attribute ctors
...
There is no difference in the code/arguments, so go with the shorter
name throughout the code.
2019-07-31 08:55:36 -04:00
Mazdak Farrokhzad
e1de70b045
Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton
...
Turn `#[global_allocator]` into a regular attribute macro
It was a 99% macro with exception of some diagnostic details.
As a result of the change, `#[global_allocator]` now works in nested modules and even in nameless blocks.
Fixes https://github.com/rust-lang/rust/issues/44113
Fixes https://github.com/rust-lang/rust/issues/58072
2019-07-25 23:21:00 +02:00
Vadim Petrochenkov
6e4f16173c
Demote template check error to a lint for #[test] and #[bench]
2019-07-24 12:29:45 +03:00
Vadim Petrochenkov
76b1ffaf6c
syntax_ext: Reuse built-in attribute template checking for macro attributes
2019-07-24 12:29:45 +03:00
Samy Kacimi
2083a123a5
Normalize use of backticks in compiler messages for libsyntax/*
...
https://github.com/rust-lang/rust/issues/60532
2019-07-23 20:03:20 +02:00
Vadim Petrochenkov
1ee0ce82cb
syntax: Migrate built-in macros to the regular stability checking
2019-07-07 13:04:07 +03:00
Vadim Petrochenkov
3542995ff9
syntax: Keep full Stability in SyntaxExtension
2019-07-07 13:04:07 +03:00
Vadim Petrochenkov
920a17a60c
privacy: Only opaque macros leak private things
2019-07-06 16:59:08 +03:00
Mazdak Farrokhzad
485a084b45
Rollup merge of #61545 - flip1995:internal_lints, r=oli-obk
...
Implement another internal lints
cc #49509
This adds ~~two~~ one internal lint~~s~~:
1. LINT_PASS_IMPL_WITHOUT_MACRO: Make sure, that the `{declare,impl}_lint_pass` macro is used to implement lint passes. cc #59669
2. ~~USAGE_OF_TYCTXT_AND_SPAN_ARGS: item 2 on the list in #49509~~
~~With 2. I wasn't sure, if this lint should be applied everywhere. That means a careful review of 0955835 would be great. Also 73fb9b4 allows this lint on some functions. Should I also apply this lint there?~~
TODO (not directly relevant for review):
- [ ] https://github.com/rust-lang/rust/pull/59316#discussion_r280186517 (not sure yet, if this works or how to query for `rustc_private`, since it's not in [`Features`](https://doc.rust-lang.org/nightly/nightly-rustc/syntax/feature_gate/struct.Features.html ) 🤔 cc @eddyb)
- [x] https://github.com/rust-lang/rust/pull/61735#discussion_r292389870
- [x] Check explicitly for the `{declare,impl}_lint_pass!` macros
r? @oli-obk
2019-07-05 20:26:51 +02:00
Jeremy Stucki
87e8613fd4
Remove needless lifetimes
2019-07-03 10:00:23 +02:00
flip1995
8e087cdd98
Use symbols in lint tool list
2019-06-24 18:14:04 +02:00
flip1995
7de6f54728
Turn internal lints into tool lints
2019-06-24 10:45:21 +02: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
Caio
1eaaf440d5
Allow attributes in formal function parameters
2019-06-09 07:58:40 -03:00
Vadim Petrochenkov
0ca3c2f881
syntax: Move most of the TokenKind methods to Token
2019-06-08 22:38:12 +03:00
Vadim Petrochenkov
3da094319c
parser: self.span -> self.token.span
2019-06-07 13:51:23 +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
350a34f85c
syntax: Use Token in some more places
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
5e693531ff
syntax: Add some helper methods to Token
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
John Kåre Alsaker
6d387463aa
Remove GlobalArenas and use Arena instead
2019-05-31 09:44:37 +02: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
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
Vadim Petrochenkov
fcc2f92f45
syntax: Return named errors from literal parsing functions
2019-05-23 12:44:05 +03: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
59a382122f
Simplify use of keyword symbols
2019-05-22 19:48:56 +03: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