Oliver Schneider
eb447f4ef4
Fix various useless derefs and slicings
2017-03-27 08:58:00 +02:00
Vadim Petrochenkov
32575a0487
Give spans to individual path segments in AST
2017-03-10 08:21:45 -08:00
Guillaume Gomez
62fb7fc54a
Switch logic to Span instead of HashMap
2017-02-03 11:08:20 +01:00
Scott Olson
a9f8f98caa
Rename ExprKind::Vec to Array in HIR and HAIR.
...
This is a clearer name since they represent [a, b, c] array literals.
2017-01-16 00:45:51 -08:00
Jeffrey Seyfried
f10f50b426
Refactor how global paths are represented (for both ast and hir).
2016-12-22 06:14:35 +00:00
Jeffrey Seyfried
8e61ff25d8
Optimize ast::PathSegment.
2016-12-19 20:57:00 +00:00
Eduard Burtescu
9aaf26e7aa
rustc: rework stability to be on-demand for type-directed lookup.
2016-11-28 04:18:11 +02:00
Jeffrey Seyfried
e85a0d70b8
Use Symbol instead of InternedString in the AST, HIR, and various other places.
2016-11-21 09:00:55 +00:00
Jeffrey Seyfried
d2f8fb0a0a
Move syntax::util::interner -> syntax::symbol, cleanup.
2016-11-20 23:40:20 +00:00
Jeffrey Seyfried
a2626410d7
Refactor MetaItemKind to use Names instead of InternedStrings.
2016-11-20 11:46:06 +00:00
Josh Driver
d6689fdc61
Add warnings when the #[should_panic] attribute is invalid
2016-11-14 22:22:17 +10:30
iirelu
e593c3b893
Changed most vec! invocations to use square braces
...
Most of the Rust community agrees that the vec! macro is clearer when
called using square brackets [] instead of regular brackets (). Most of
these ocurrences are from before macros allowed using different types of
brackets.
There is one left unchanged in a pretty-print test, as the pretty
printer still wants it to have regular brackets.
2016-10-31 22:51:40 +00:00
Jeffrey Seyfried
cbd24757eb
Move CrateConfig from Crate to ParseSess.
2016-10-29 07:52:58 +00:00
Manish Goregaokar
259d1fcd47
Rollup merge of #36599 - jonas-schievink:whats-a-pirates-favorite-data-structure, r=pnkfelix
...
Contains a syntax-[breaking-change] as a separate commit (cc #31645 ).nnAlso renames slice patterns from `PatKind::Vec` to `PatKind::Slice`.
2016-10-01 19:22:12 +05:30
Jonathan Turner
13c8e763d4
Rollup merge of #36787 - jseyfried:fix_test_harness_reexport_errors, r=nrc
...
Avoid re-export errors in the generated test harness
Fixes #36768 .
r? @nrc
2016-09-28 20:21:51 -07:00
Jonas Schievink
48e5199de3
libsyntax: clearer names for some AST parts
...
This applies the HIR changes from the previous commits to the AST, and
is thus a syntax-[breaking-change]
Renames `PatKind::Vec` to `PatKind::Slice`, since these are called slice
patterns, not vec patterns. Renames `TyKind::Vec`, which represents the
type `[T]`, to `TyKind::Slice`. Renames `TyKind::FixedLengthVec` to
`TyKind::Array`.
2016-09-28 22:31:18 +02:00
Jeffrey Seyfried
dd47815478
Avoid re-export errors in the generated test harness.
2016-09-27 20:23:59 +00: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
Jeffrey Seyfried
b54e1e3997
Differentiate between monotonic and non-monotonic expansion and
...
only assign node ids during monotonic expansion.
2016-09-13 09:40:28 +00:00
Jeffrey Seyfried
78c0039878
Expand generated test harnesses and macro registries.
2016-09-13 09:40:28 +00:00
Jeffrey Seyfried
a9821e1658
Refactor ExtCtxt to use a Resolver instead of a MacroLoader.
2016-09-13 05:31:16 +00:00
Jeffrey Seyfried
d986bbe674
Implement stackless expansion.
2016-09-05 04:53:34 +00:00
Jeffrey Seyfried
c14ff2884d
Rollup merge of #35917 - jseyfried:remove_attr_ext_traits, r=nrc
...
syntax: Remove traits `AttrMetaMethods`, `AttributeMethods`, and `AttrNestedMetaItemMethods`
2016-08-28 10:40:04 +00:00
Jeffrey Seyfried
6303640e85
Rollup merge of #35850 - SergioBenitez:master, r=nrc
...
Implement RFC#1559: allow all literals in attributes
Implemented rust-lang/rfcs#1559, tracked by #34981 .
2016-08-28 10:38:19 +00:00
Keith Yeung
aa5c4bb05d
Change Constness to Spanned<Constness>
2016-08-27 22:43:51 -07: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
bors
7ed6068d3e
Auto merge of #34789 - jonathandturner:simplify_liberror, r=alexcrichton
...
Simplify librustc_errors
This is part 2 of the error crate refactor, starting with #34403 .
In this refactor, I focused on slimming down the error crate to fewer moving parts. As such, I've removed quite a few parts and replaced the with simpler, straight-line code. Specifically, this PR:
* Removes BasicEmitter
* Remove emit from emitter, leaving emit_struct
* Renames emit_struct to emit
* Removes CoreEmitter and focuses on a single Emitter
* Implements the latest changes to error format RFC (#1644 )
* Removes (now-unused) code in emitter.rs and snippet.rs
* Moves more tests to the UI tester, removing some duplicate tests in the process
There is probably more that could be done with some additional refactoring, but this felt like it was getting to a good state.
r? @alexcrichton cc: @Manishearth (as there may be breaking changes in stuff I removed/changed)
2016-07-17 00:06:29 -07:00
Jonathan Turner
71ec2867e3
Implement latest rfc style using simpler rendering
2016-07-14 07:57:46 -04:00
Jeffrey Seyfried
0701571fe7
Implement macro_rules! placeholders and the macro scope map
2016-07-14 01:34:37 +00:00
Jeffrey Seyfried
9bb3ea0feb
Rollup merge of #34436 - jseyfried:no_block_expr, r=eddyb
...
To allow these braced macro invocation, this PR removes the optional expression from `ast::Block` and instead uses a `StmtKind::Expr` at the end of the statement list.
Currently, braced macro invocations in blocks can expand into statements (and items) except when they are last in a block, in which case they can only expand into expressions.
For example,
```rust
macro_rules! make_stmt {
() => { let x = 0; }
}
fn f() {
make_stmt! {} //< This is OK...
let x = 0; //< ... unless this line is commented out.
}
```
Fixes #34418 .
2016-06-26 02:20:14 +00:00
Jeffrey Seyfried
8eddf02800
Rollup merge of #34339 - jseyfried:thin_vec, r=petrochenkov,Manishearth
...
Generalize and abstract `ThinAttributes` to `ThinVec<Attribute>`.
2016-06-26 02:18:43 +00:00
Jeffrey Seyfried
060a84d1f7
Refactor away duplicate method ecx.block_all()
2016-06-23 23:26:43 +00:00
Jeffrey Seyfried
b7da35a5aa
Remove field expr of ast::Block
2016-06-23 17:42:08 +00:00
Jonathan Turner
2b8bab095d
Move test helper functions to consolidated codemap testing
2016-06-23 10:50:05 -04:00
Jonathan Turner
b68e079522
Actually consolidate the CodeMap tests
2016-06-23 09:05:39 -04:00
Jonathan Turner
f2fe204dcc
Consolidate codemap tests and fix more errors for travis
2016-06-23 08:07:35 -04:00
Jonathan Turner
6ae3502134
Move errors from libsyntax to its own crate
2016-06-23 08:07:35 -04:00
Jeffrey Seyfried
5033eca65f
Generalize and abstract ThinAttributes
2016-06-19 00:01:55 +00:00
Jeffrey Seyfried
2cd6ccf0b1
Simplify gated cfg checking
2016-06-16 19:24:44 +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
51499b6e1f
Load macros from extern crates during expansion.
2016-06-09 00:44:17 +00:00
bors
623af22b9a
Auto merge of #33821 - sanxiyn:cfg-test, r=nikomatsakis
...
Do not inject test harness for --cfg test
Fix #33670 .
2016-05-28 10:24:01 -07:00
Jeffrey Seyfried
15d5074a34
Process cfg_attr attributes on non-optional expressions
2016-05-27 00:01:04 +00:00
Jeffrey Seyfried
a306f85df9
Implement CfgFolder directly instead of passing a closure to strip_items
2016-05-26 23:23:11 +00:00
Seo Sanghyeon
3c4eb01482
Remove unused field and argument
2016-05-24 02:00:39 +09:00
Seo Sanghyeon
f27fbf9a4a
Do not inject test harness for --cfg test
2016-05-24 00:44:44 +09:00
Vadim Petrochenkov
b32d7b5923
syntax: Merge keywords and remaining special idents in one list
...
Simplify the macro used for generation of keywords
Make `Keyword::ident` private
2016-04-24 20:59:44 +03:00
Vadim Petrochenkov
e2c821d35e
syntax: Make static/super/self/Self keywords + special ident cleanup
2016-04-24 20:59:44 +03:00