Jeffrey Seyfried
3ea2bc4e93
Refactor away ast::Attribute_
.
2016-11-20 11:46:00 +00:00
Mark-Simulacrum
7bbebb1f54
Change implementation of syntax::util::SmallVector to use data_structures::SmallVec.
2016-11-11 07:38:48 -07:00
Jeffrey Seyfried
cbd24757eb
Move CrateConfig
from Crate
to ParseSess
.
2016-10-29 07:52:58 +00:00
Guillaume Gomez
93417fa71e
Add invalid doc comment help message
2016-10-18 22:39:01 +02:00
Nick Cameron
a94f5934cd
Stabilise attributes on statements.
...
Note that attributes on expressions are still unstable and are behind the `stmt_expr_attributes` flag.
cc [Tracking issue](https://github.com/rust-lang/rust/issues/15701 )
2016-10-12 08:40:22 +13:00
Jeffrey Seyfried
f34e49dd90
With --test
, make #[test]
functions pub
in InvocationCollector
...
and expand the `__test_reexports` in the correct scope.
2016-09-27 06:43:49 +00:00
Tim Neumann
b0dba7439d
make emit_feature_err take a ParseSess
2016-09-26 07:07:41 +02:00
Jeffrey Seyfried
b232f6d9fe
Avoid loading and parsing unconfigured non-inline modules.
2016-09-15 08:16:18 +00:00
Jeffrey Seyfried
d76bf3ed80
Strip unconfigured nodes in the InvocationCollector
fold.
2016-09-07 22:41:35 +00:00
Jeffrey Seyfried
3af0c6572e
Refactor code out of the folder implementation for StripUnconfigured
.
2016-09-07 22:12:30 +00:00
Jeffrey Seyfried
9b3bc7a9e9
Remove syntax::config::strip_unconfigured
, add syntax::config::features
.
2016-09-05 04:53:16 +00:00
Jeffrey Seyfried
4fe94e0be6
Future proof the AST for union
.
2016-08-29 05:20:40 +00:00
Jeffrey Seyfried
bfb01bbb26
Refactor away AttrMetaMethods
.
2016-08-25 20:41:40 +00:00
Jeffrey Seyfried
4eb08bb2ab
Refactor away AttrNestedMetaItemMethods
.
2016-08-25 20:41:32 +00:00
Sergio Benitez
8250a26b5b
Implement RFC#1559: allow all literals in attributes.
2016-08-25 13:25:22 -07:00
Jeffrey Seyfried
e21ffdf4d1
Avoid processing feature
s on unconfigured crates.
2016-07-21 23:03:01 +00:00
bors
47380768e7
Auto merge of #34546 - jseyfried:cfg_attr_path, r=nrc
...
Support `cfg_attr` on `path` attributes
Fixes #25544 .
This is technically a [breaking-change]. For example, the following would break:
```rust
mod foo; // Suppose `foo.rs` existed in the appropriate location
```
2016-07-06 00:34:51 -07:00
Jeffrey Seyfried
db57e67452
Support cfg_attr
on path
attributes
2016-06-29 09:35:56 +00:00
Jeffrey Seyfried
b968ee3656
cleanup: don't count attributes on an item in a statement position as on the statement
2016-06-28 05:28:20 +00:00
Jeffrey Seyfried
8748cd92d0
Rollup merge of #34316 - jseyfried:refactor_ast_stmt, r=eddyb
...
Refactor away `ast::Decl`, refactor `ast::Stmt`, and rename `ast::ExprKind::Again` to `ast::ExprKind::Continue`.
2016-06-26 02:17:27 +00:00
Jonathan Turner
6ae3502134
Move errors from libsyntax to its own crate
2016-06-23 08:07:35 -04:00
Jeffrey Seyfried
962d5c16b5
Fix fallout
2016-06-17 05:21:23 +00:00
Jeffrey Seyfried
2cd6ccf0b1
Simplify gated cfg checking
2016-06-16 19:24:44 +00:00
bors
6edea2cfda
Auto merge of #34216 - jseyfried:nested_cfg_attr, r=nrc
...
Support nested `cfg_attr` attributes
Support arbitrarily deeply nested `cfg_attr` attributes (e.g. `#[cfg_attr(foo, cfg_attr(bar, baz))]`).
This makes configuration idempotent.
Currently, the nighties do not support any `cfg_attr` nesting. Stable and beta support just one level of `cfg_attr` nesting (expect for attributes on macro-expanded nodes, where no nesting is supported).
This is a [breaking-change]. For example, the following would break:
```rust
macro_rules! m { () => {
#[cfg_attr(all(), cfg_attr(all(), cfg(foo)))]
fn f() {}
} }
m!();
fn main() { f() } //~ ERROR unresolved name `f`
```
r? @nrc
2016-06-16 03:49:55 -07:00
Jeffrey Seyfried
65d256e82a
Support nested cfg_attr
attributes
2016-06-11 04:59:36 +00:00
Jeffrey Seyfried
29c4b6726a
Refactor away the CfgFolder
trait.
2016-06-11 03:13:48 +00:00
Jeffrey Seyfried
c89846c271
Forbid #[test]
attributes on non-optional expressions.
2016-06-11 03:13:47 +00:00
Jeffrey Seyfried
66b9ade341
Strip #[test]
nodes during cfg
processing on non-test builds.
2016-06-11 03:13:44 +00:00
Jeffrey Seyfried
8254e55760
Avoid configuring interpolated items.
2016-06-09 00:26:35 +00:00
Jeffrey Seyfried
daf916bf9a
Fix bug in the syntax::config::StripUnconfigured
folder
2016-06-02 07:34:19 +00:00
Jeffrey Seyfried
53ab137841
Comment methods in CfgFolder
2016-05-27 23:57:02 +00:00
Jeffrey Seyfried
1aa34e0b5f
Strip unconfigured items during macro expansion
2016-05-27 00:01:04 +00:00
Jeffrey Seyfried
15d5074a34
Process cfg_attr
attributes on non-optional expressions
2016-05-27 00:01:04 +00:00
Jeffrey Seyfried
d3a0e1783c
Move cfg_attr processing and stmt/expr attribute gated feature checking into StripUnconfigured
2016-05-26 23:54:05 +00:00
Jeffrey Seyfried
a306f85df9
Implement CfgFolder
directly instead of passing a closure to strip_items
2016-05-26 23:23:11 +00:00
Jeffrey Seyfried
f3e80760e9
Refactor CfgFolder::in_cfg
-> CfgFolder::configure
2016-05-26 23:23:09 +00:00
Jeffrey Seyfried
79854395ca
Introduce CfgFolder
trait
2016-05-26 23:23:07 +00:00
Jeffrey Seyfried
7a42e46eec
Refactor the syntax::config::fold_*
functions into methods
2016-05-26 23:23:06 +00:00
Vadim Petrochenkov
8fe4290f1c
Move span into StructField
2016-04-06 11:19:10 +03:00
Vadim Petrochenkov
77cc5764b9
Remove some unnecessary indirection from AST structures
2016-02-11 23:33:09 +03:00
Oliver 'ker' Schneider
14e09ad468
[breaking-change] don't glob export ast::MetaItem_
2016-02-11 12:34:48 +01:00
Oliver 'ker' Schneider
019614f03d
[breaking-change] don't glob export ast::Item_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
8290c950a8
[breaking-change] don't pub export ast::Stmt_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
80bf9ae18a
[breaking-change] don't glob export ast::Expr_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
79fa657abc
[breaking-change] don't glob export ast::Decl_ variants
2016-02-11 12:34:48 +01:00
Nick Cameron
6309b0f5bb
move error handling from libsyntax/diagnostics.rs to libsyntax/errors/*
...
Also split out emitters into their own module.
2015-12-17 09:35:50 +13:00
Marvin Löbel
296c3613ca
Added stmt_expr_attribute feature gate
2015-11-26 21:47:44 +01:00
Marvin Löbel
f0beba0217
Moved and refactored ThinAttributes
2015-11-26 21:46:12 +01:00
Marvin Löbel
2a8f358de7
Add syntax support for attributes on expressions and all syntax
...
nodes in statement position.
Extended #[cfg] folder to allow removal of statements, and
of expressions in optional positions like expression lists and trailing
block expressions.
Extended lint checker to recognize lint levels on expressions and
locals.
2015-11-26 21:46:12 +01:00
Seo Sanghyeon
791003ad3c
Use deref coercions
2015-11-10 20:16:28 +09:00