Commit graph

323 commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
8a4facc3c3 syntax: #[allow_internal_unsafe] bypasses the unsafe_code lint in macros. 2017-08-12 09:14:50 +03:00
Isaac van Bakel
400075d9d9 Fixed all unnecessary muts in language core 2017-08-01 23:01:24 +01:00
Esteban Küber
6772661f37 Review comments 2017-07-21 16:49:09 -07:00
Esteban Küber
e99d309c56 Use the macro structure spans instead of the invocation 2017-07-20 21:27:22 -07:00
Alex Burka
f9f4707469 let #[allow_internal_unstable] cover :vis 2017-07-11 20:31:22 +00:00
kennytm
06e1fc06d7
Disallow $($v:vis)*. Fix #42755. 2017-07-06 18:24:36 +08:00
Jeffrey Seyfried
d4488b7df9 Simplify hygiene::Mark application, and
remove variant `Token::SubstNt` in favor of `quoted::TokenTree::MetaVar`.
2017-06-26 02:05:45 +00:00
Mark Simulacrum
3d9ebf2916 Speed up expansion.
This reduces duplication, thereby increasing expansion speed.
2017-06-08 08:53:31 -06:00
est31
602036370f Extend the unused macro lint to macros 2.0 2017-05-31 17:03:41 +02:00
bors
9337ad5bae Auto merge of #42103 - jorendorff:master, r=estebank
trace_macro: Show both the macro call and its expansion. #42072.

See #42072 for the initial motivation behind this.

The change is not the minimal fix, but I want this behavior almost every time I use `trace_macros`.
2017-05-27 17:38:11 +00:00
Jeffrey Seyfried
1f175fa35d Hygienize librustc_resolve. 2017-05-25 05:51:50 +00:00
Jeffrey Seyfried
2a1d2edb82 Declarative macros 2.0 without hygiene. 2017-05-25 05:51:06 +00:00
Jeffrey Seyfried
9c6430b325 Refactor out ast::MacroDef. 2017-05-25 05:47:25 +00:00
Jason Orendorff
f8b66a001d trace_macro: Show both the macro call and its expansion. #42072. 2017-05-19 13:43:06 -05:00
Nick Cameron
a2566301e1 Add an option to the parser to avoid parsing out of line modules
This is useful if parsing from stdin or a String and don't want to try and read in a module from another file. Instead we just leave a stub in the AST.
2017-05-18 11:03:07 +12:00
bors
d8215fc238 Auto merge of #42049 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 5 pull requests

- Successful merges: #41937, #41957, #42017, #42039, #42046
- Failed merges:
2017-05-17 01:57:45 +00:00
Andre Bogus
958c67d9c8 adressed comments by @kennytm and @petrochenkov 2017-05-15 23:56:09 +02:00
est31
25b7f10c78 Address review comments 2017-05-15 07:38:39 +02:00
est31
d14d194f61 Support #[allow] etc logic on a per macro level
This commit extends the current unused macro linter
to support directives like #[allow(unused_macros)]
or #[deny(unused_macros)] directly next to the macro
definition, or in one of the modules the macro is
inside. Before, we only supported such directives
at a per crate level, due to the crate's NodeId
being passed to session.add_lint.

We also had to implement handling of the macro's
NodeId in the lint visitor.
2017-05-13 16:02:29 +02:00
Andre Bogus
a9c163ebe9 Fix some clippy warnings in libsyntax
This is mostly removing stray ampersands, needless returns and lifetimes.
2017-05-12 20:05:39 +02:00
Esteban Küber
8c9ad8d72c Group "macro expansion" notes per call span 2017-05-06 00:55:42 -07:00
Esteban Küber
56411443f2 Use diagnostics for trace_macro instead of println 2017-05-05 15:51:48 -07:00
Alex Burka
e0cd76674d feature gate :vis matcher 2017-04-15 19:06:58 +00:00
Alex Burka
37459e13fc widen :vis follow set 2017-04-15 19:06:19 +00:00
Alex Burka
16010c2f50 parse interpolated visibility tokens 2017-04-15 19:06:19 +00:00
Alex Burka
d53e413e04 update :vis implementation to current rust 2017-04-15 19:06:19 +00:00
Daniel Keep
a2489495d9 Implementation of the vis macro matcher. 2017-04-15 19:06:19 +00:00
Jeffrey Seyfried
8fde04b4a2 Improve Path spans. 2017-03-30 05:44:56 +00:00
Oliver Schneider
eb447f4ef4
Fix various useless derefs and slicings 2017-03-27 08:58:00 +02:00
Jeffrey Seyfried
839c2860cc Liberalize attributes. 2017-03-14 04:39:21 +00:00
Jeffrey Seyfried
8c98996934 Avoid using Mark and Invocation for macro defs. 2017-03-10 08:08:32 -08:00
Jeffrey Seyfried
212b6c2550 Refactor out ast::ItemKind::MacroDef. 2017-03-10 08:08:32 -08:00
Jeffrey Seyfried
f6eaaf350e Integrate TokenStream. 2017-03-03 02:15:37 +00:00
Jeffrey Seyfried
61a9a14d29 Add warning cycle. 2017-02-28 22:15:12 +00:00
Jeffrey Seyfried
0cc7053efa Remove Token::MatchNt. 2017-02-28 22:15:09 +00:00
Jeffrey Seyfried
d8b34e9a74 Add syntax::ext::tt::quoted::{TokenTree, ..} and remove tokenstream::TokenTree::Sequence. 2017-02-28 22:14:29 +00:00
Jeffrey Seyfried
49f5b0a8cf Remove open_span and close_span from Delimited. 2017-01-23 06:49:06 +00:00
Jeffrey Seyfried
6a9248fc15 Clean up ext::tt::transcribe. 2017-01-17 08:17:28 +00:00
Jeffrey Seyfried
debcbf0b8e Refactor the parser to consume token trees. 2017-01-17 08:17:26 +00:00
Jeffrey Seyfried
421c5d11c1 Remove scope placeholders, remove method add_macro of ext::base::Resolver. 2016-12-18 23:26:30 +00:00
Jeffrey Seyfried
e80d1a8faf Remove MacroDef's fields imported_from and allow_internal_unstable,
remove `export` argument of `resolver.add_macro()`.
2016-12-18 23:26:29 +00:00
Jeffrey Seyfried
fd98a8d795 macros: fix the expected paths for a non-inline module matched by an item fragment. 2016-12-07 10:56:55 +00:00
Jeffrey Seyfried
5675d9d280 Clean up directory ownership semantics. 2016-11-22 01:48:10 +00:00
Jeffrey Seyfried
36c8f6b0d3 Cleanup InternedString. 2016-11-21 09:00:56 +00:00
Jeffrey Seyfried
d2f8fb0a0a Move syntax::util::interner -> syntax::symbol, cleanup. 2016-11-20 23:40:20 +00:00
Jeffrey Seyfried
eb3ac29a10 Reduce the size of Token and make it cheaper to clone by refactoring
`Token::Interpolated(Nonterminal)` -> `Token::Interpolated(Rc<Nonterminal>)`.
2016-11-03 23:48:24 +00:00
Jeffrey Seyfried
cbd24757eb Move CrateConfig from Crate to ParseSess. 2016-10-29 07:52:58 +00:00
Jeffrey Seyfried
53de24bbd1 Refactor away fields MacroDef::{use_locally, export}. 2016-10-24 00:43:19 +00:00
bors
a117bba125 Auto merge of #37318 - nnethercote:html5ever-more, r=nrc,eddyb
Avoid some allocations in the macro parser

These three commits reduce the number of heap allocations done when compiling rustc-benchmarks/html5ever-2016-08-25 by 20%, from 16.5M to 13.3M. This speeds up (debug) compilation of it with a stage1 compiler by about 7%.
2016-10-22 13:09:24 -07:00
Nicholas Nethercote
b817cf8b57 Replace the String in ParseResult::Failure with Token.
This lets us delay creation of failure messages until they are needed,
which avoids ~1.6M allocations in html5ever.
2016-10-21 20:27:15 +11:00