Corey Richardson
d0e0c336d0
Update syntax test
2013-09-16 19:12:54 -04:00
Corey Richardson
bb4d4d7eb9
Fix hardcoded string in libsyntax
2013-09-16 17:12:53 -04:00
Niko Matsakis
a5ad4c3794
Delay assignment of node ids until after expansion. Ensures that each AST node
...
has a unique id. Fixes numerous bugs in macro expansion and deriving. Add two
representative tests.
Fixes #7971
Fixes #6304
Fixes #8367
Fixes #8754
Fixes #8852
Fixes #2543
Fixes #7654
2013-09-10 05:45:12 -04:00
Marvin Löbel
7419085337
Modernized a few more types in syntax::ast
2013-09-03 14:45:06 +02:00
Marvin Löbel
539f37925c
Modernized a few type names in rustc and syntax
2013-09-01 14:43:26 +02:00
Erick Tryzelaar
91d6c60bed
fix various warnings
2013-08-30 15:10:55 -07:00
Patrick Walton
4f32a2d854
librustc: Fix merge fallout.
2013-08-27 18:47:57 -07:00
Patrick Walton
8693943676
librustc: Ensure that type parameters are in the right positions in paths.
...
This removes the stacking of type parameters that occurs when invoking
trait methods, and fixes all places in the standard library that were
relying on it. It is somewhat awkward in places; I think we'll probably
want something like the `Foo::<for T>::new()` syntax.
2013-08-27 18:47:57 -07:00
Patrick Walton
3b6314c39b
librustc: Add support for type parameters in the middle of paths.
...
For example, `foo::<T>::bar::<U>`.
This doesn't enforce that the type parameters are in the right
positions, however.
2013-08-27 18:46:51 -07:00
Niko Matsakis
96254b4090
libsyntax: Update from @Object
to @mut Object
as required
2013-08-11 13:23:40 -04:00
Michael Woerister
8a329770b6
New naming convention for ast::{node_id, local_crate, crate_node_id, blk_check_mode, ty_field, ty_method}
2013-07-29 16:16:48 +02:00
Graydon Hoare
c3417b88aa
syntax: Fix #6416 by aborting on errors after test parse.
2013-07-25 01:06:38 -07:00
Michael Woerister
4bd1424622
Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.
...
`crate => Crate`
`local => Local`
`blk => Block`
`crate_num => CrateNum`
`crate_cfg => CrateConfig`
Also, Crate and Local are not wrapped in spanned<T> anymore.
2013-07-22 15:35:28 +02:00
Huon Wilson
cc760a647a
syntax: modernise attribute handling in syntax::attr.
...
This does a number of things, but especially dramatically reduce the
number of allocations performed for operations involving attributes/
meta items:
- Converts ast::meta_item & ast::attribute and other associated enums
to CamelCase.
- Converts several standalone functions in syntax::attr into methods,
defined on two traits AttrMetaMethods & AttributeMethods. The former
is common to both MetaItem and Attribute since the latter is a thin
wrapper around the former.
- Deletes functions that are unnecessary due to iterators.
- Converts other standalone functions to use iterators and the generic
AttrMetaMethods rather than allocating a lot of new vectors (e.g. the
old code would have to allocate a new vector to use functions that
operated on &[meta_item] on &[attribute].)
- Moves the core algorithm of the #[cfg] matching to syntax::attr,
similar to find_inline_attr and find_linkage_metas.
This doesn't have much of an effect on the speed of #[cfg] stripping,
despite hugely reducing the number of allocations performed; presumably
most of the time is spent in the ast folder rather than doing attribute
checks.
Also fixes the Eq instance of MetaItem_ to correctly ignore spaces, so
that `rustc --cfg 'foo(bar)'` now works.
2013-07-20 01:06:16 +10:00
Patrick Walton
99b33f7219
librustc: Remove all uses of "copy".
2013-07-17 14:57:51 -07:00
Patrick Walton
b4e674f6e6
librustc: Add a lint mode for unnecessary copy
and remove a bunch of them.
2013-07-17 14:56:42 -07:00
Michael Woerister
0cc70743d2
Made ast::blk not use spanned<T> anymore.
2013-07-17 08:21:46 +02:00
bors
0f2515583d
auto merge of #7615 : Aatch/rust/syntax-deshare, r=graydon
...
In an ideal world, the AST would be completely sendable, this gets us a step closer.
It removes the local heap allocations for `view_item`, `Path`, `Lifetime` `trait_ref` `OptVec<TyParamBounds>` and `Ty`. There are also a few other smaller changes I made as things went along.
2013-07-07 05:22:56 -07:00
James Miller
1fd735d3c1
Fix broken tests
2013-07-07 22:51:10 +12:00
James Miller
cd1b6c8979
De-managed ast::Path
2013-07-07 22:51:09 +12:00
Philipp Brüschweiler
3c5cfdf2e7
libsyntax: fix infinite loop when recursively including modules
...
Fixes #7276
2013-07-04 19:51:11 +02:00
Ben Blum
7b968783d7
Infer default static/Owned bounds for unbounded heap fns/traits ( #7264 )
2013-06-26 18:14:43 -04:00
Corey Richardson
0d471d310d
great renaming propagation: syntax
2013-06-25 16:15:07 -04:00
Ben Blum
ce857e3d60
Parse and typecheck (not kindcheck) bounds on trait paths.
2013-06-23 14:40:14 -04:00
Huon Wilson
096f6f56a8
Use @str instead of @~str in libsyntax and librustc. Fixes #5048 .
...
This almost removes the StringRef wrapper, since all strings are
Equiv-alent now. Removes a lot of `/* bad */ copy *`'s, and converts
several things to be &'static str (the lint table and the intrinsics
table).
There are many instances of .to_managed(), unfortunately.
2013-06-13 10:20:52 +10:00
Huon Wilson
98ba91f81b
remove unused import warnings
2013-06-09 02:22:23 +10:00
John Clements
5a158f1d19
add hygiene support functions
2013-06-05 12:01:40 -07:00
John Clements
ecdb6e4722
remove unused get_ident_interner's
2013-06-05 12:01:40 -07:00
John Clements
8dad2bb281
removed unused imports (and one unused argument)
2013-06-05 12:01:39 -07:00
John Clements
367eddf5b1
remove interner field from string_reader
2013-06-05 12:01:39 -07:00
John Clements
19cbd0d284
remove interner from tt_reader
2013-06-05 12:01:39 -07:00
John Clements
3203595471
interner just uses uints, not idents with syntax context
2013-06-05 12:01:38 -07:00
John Clements
ae02bf70e0
removed some interner fields
2013-06-05 12:01:38 -07:00
John Clements
1537056982
just use TLS interner
2013-06-05 12:01:37 -07:00
John Clements
d7638f9dba
change to newer macro escape mechanism, using uints in more places
2013-06-05 12:01:36 -07:00
Erick Tryzelaar
23808efd11
syntax: move callee_id into the expr_ variants
2013-06-01 15:31:56 -07:00
Niko Matsakis
ce5fd30270
Fix parser test
2013-05-30 21:01:25 -04:00
Niko Matsakis
7a1a40890d
Remove copy bindings from patterns.
2013-05-30 15:20:36 -04:00
Patrick Walton
c532e033c9
librustc: Change std
to extra
throughout libsyntax and librustc
2013-05-22 21:57:08 -07:00
John Clements
999f692645
getting rid of interner_key! macro
2013-05-20 11:49:21 -07:00
John Clements
fc4f304ef9
hygiene infrastructure.
...
- added a hash table to memoize rename and mark operations.
- added rename, mark, and resolve fold fns
2013-05-20 11:49:21 -07:00
John Clements
b621820dc4
detect unused attrs in one more place, allow parsing to continue for all
...
changed a bunch of fatal()'s into err()'s, to allow parsing to proceed.
2013-05-20 11:49:20 -07:00
John Clements
975f264983
refactoring test functions
2013-05-20 11:49:20 -07:00
Corey Richardson
cc57ca012a
Use assert_eq! rather than assert! where possible
2013-05-19 08:16:02 -04:00
Alex Crichton
ffcc680f9c
Fix test fallout from removing vecs_implicitly_copyable
2013-05-14 12:25:19 -04:00
Patrick Walton
5d3559e645
librustc: Make self
and static
into keywords
2013-05-12 16:35:18 -07:00
Björn Steinbrink
1393c3a3f4
Use a specialized string interner to reduce the need for owned strings
...
&str can be turned into @~str on demand, using to_owned(), so for
strings, we can create a specialized interner that accepts &str for
intern() and find() but stores and returns @~str.
2013-05-09 14:40:19 +02:00
bors
6e6a4be19d
auto merge of #6208 : sanxiyn/rust/accurate-span, r=sanxiyn
2013-05-05 11:12:37 -07:00
Seo Sanghyeon
aca2a00fb4
Fix span tests
2013-05-06 03:09:19 +09:00
Patrick Walton
dc5df61bc1
librustc: Update the serializer to work properly with INHTWAMA, removing mutable fields in the process
2013-05-02 17:00:51 -07:00
Felix S. Klock II
9862cf703b
More cases of [cfg(test)] instead of [test].
2013-05-02 08:55:08 +02:00
Brendan Zabarauskas
e596128bd8
Remove 'Local Variable' comments
2013-05-02 13:22:04 +10:00
Erick Tryzelaar
e9688fcfe3
remove some warnings
2013-05-01 07:49:41 -07:00
Patrick Walton
78f33437b6
libstd: Fix merge fallout.
2013-04-29 14:30:57 -07:00
John Clements
1b4ced8bcb
get rid of prec.rs
...
prec.rs no longer had much to do with precedence; the token->binop
function fits better in token.rs, and the one-liner defining the
precedence of 'as' can go next to the other precedence stuff in
ast_util.rs
2013-04-28 09:51:14 -07:00
John Clements
28b285764c
comments, helper function for tests, more informative error message
2013-04-28 09:49:20 -07:00
John Clements
c73a9c9cd0
refactoring mod.rs
2013-04-28 09:49:20 -07:00
Alex Crichton
3c7aea3a6a
syntax: de-mode and prepare for de-modeing rustc
2013-04-19 23:21:52 -04:00
bors
6153aae809
auto merge of #5559 : jbclements/rust/change-to-tt-based-parsing, r=jbclements
...
Changes the parser to parse all streams into token-trees before hitting the parser proper, in preparation for hygiene. As an added bonus, it appears to speed up the parser (albeit by a totally imperceptible 1%).
Also, many comments in the parser.
Also, field renaming in token-trees (readme->forest, cur->stack).
2013-04-03 11:31:03 -07:00
Patrick Walton
1e91595520
librustc: Remove fail_unless!
2013-03-29 16:39:08 -07:00
John Clements
f2e47cddf8
change to parsing using tts
...
also, updates test cases a bit
2013-03-29 10:53:00 -07:00
John Clements
556143c488
commenting parser
2013-03-29 10:53:00 -07:00
Alex Crichton
be57d745d2
Removing unused imports
2013-03-28 23:56:46 -04:00
Erick Tryzelaar
4d995e66a2
std: change default json enum encoder to use strings or a flat vec
2013-03-27 07:04:12 -07:00
Erick Tryzelaar
b10b8c3ee4
std: Add tests for json decoding options
2013-03-27 07:04:11 -07:00
John Clements
3cd65c233d
change some uses of fail_unless to assert_eq
2013-03-20 16:05:59 -07:00
Luca Bruno
0a34a3f0f5
Make driver::driver::parse_cfgspecs parse any variety of meta_item
...
All current meta items types (word, name-value, list) are now
properly parsed by rustc --cfg command line. Fixes #2399
Signed-off-by: Luca Bruno <lucab@debian.org>
2013-03-19 14:02:59 +01:00
John Clements
4bd26481c4
Update test case to conform to new restrictions on casting
2013-03-15 09:17:49 -07:00
John Clements
b5ace4df45
Test case fixup (old one tested the old bad behavior).
2013-03-15 08:44:21 -07:00
Patrick Walton
50d99e0194
libsyntax: Remove a use of deprecated Encodable from libsyntax. rs=burningtree
2013-03-13 21:54:51 -07:00
Patrick Walton
58f248d923
test: Fix tests. rs=tests
2013-03-13 20:08:35 -07:00
Patrick Walton
b1c699815d
librustc: Don't accept as Trait
anymore; fix all occurrences of it.
2013-03-13 20:07:09 -07:00
Patrick Walton
d18f785457
librustc: Replace all uses of fn()
with &fn()
. rs=defun
2013-03-11 09:35:58 -07:00
Alex Crichton
62651df2b4
Fix dvec-related fallout in tests
2013-03-08 09:56:52 -05:00
Patrick Walton
d7e74b5e91
librustc: Convert all uses of assert
over to fail_unless!
2013-03-07 22:37:57 -08:00
Alex Crichton
dfb5c10dea
Remove unused imports throughout src/
2013-03-04 12:27:01 -05:00
Erick Tryzelaar
85fecd0ba7
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-03-01 07:01:48 -08:00
Niko Matsakis
4ecb672d7f
Remove legacy object creation mode, and convert remaining uses of it
2013-02-28 20:28:04 -05:00
Alex Crichton
2df07ddc25
Fix implicit leaks of imports throughout libraries
...
Also touch up use of 'pub' and move some tests around so the tested functions
don't have to be 'pub'
2013-02-28 18:00:34 -05:00
Erick Tryzelaar
7d0ec86c4a
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-02-27 11:03:21 -08:00
Erick Tryzelaar
ea36a0dee1
libsyntax: add some more explicit copies
2013-02-26 20:48:12 -08:00
Erick Tryzelaar
4ae91e2961
libsyntax: add explicit copies
2013-02-26 20:48:11 -08:00
John Clements
08b6057538
Macros now leave scope
...
Macro scope is now delimited by function, block, and module boundaries,
except for modules that are marked with #[macro_escape], which allows
macros to escape.
2013-02-26 10:36:55 -08:00
Patrick Walton
934c938f90
libsyntax: De-mut the parser. rs=demuting
2013-02-22 16:09:16 -08:00
John Clements
27b06777e6
Cleanup, commenting, trivial renaming
2013-02-21 16:17:06 -08:00
Luqman Aden
b02f5c2090
Get rid of structural records in libsyntax and the last bit in librustc.
2013-02-21 00:19:15 -08:00
Luqman Aden
e244f103c9
libsyntax: Get rid of uses of move
and don't parse it.
2013-02-15 02:49:55 -08:00
Seo Sanghyeon
7a6db3f982
Remove DVec from syntax::parse
2013-02-14 22:14:59 +09:00
John Clements
f9d789fa08
cleanup, fix test case
2013-02-13 15:38:42 -08:00
John Clements
25c4676dfa
Commenting, test cases, cleanup
2013-02-13 15:08:27 -08:00
Patrick Walton
472797b04a
librustc: Lots of de-muting. rs=demuting
2013-02-07 16:17:39 -08:00
John Clements
53688addaa
test cases, cleanup
2013-01-31 23:05:12 -08:00
Patrick Walton
95b892c8a7
libsyntax: De-export a lot of libsyntax. rs=deëxporting
2013-01-29 13:55:30 -08:00
Patrick Walton
2db3abddcd
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
...
This reverts commit a8d37af247
.
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 19:27:57 -08:00
Patrick Walton
57c599914a
librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon
2012-12-27 10:02:54 -08:00
Patrick Walton
4c2e4c37ce
librustc: Make use
statements crate-relative by default. r=brson
2012-12-13 13:05:22 -08:00
Graydon Hoare
00c856c0b1
Update license, add license boilerplate to most files. Remainder will follow.
2012-12-03 17:12:14 -08:00
Brian Anderson
3ed9fbd63c
impls of traits cannot define methods on the anonymous trait
2012-11-29 22:07:49 -08:00
Brian Anderson
65bd40e300
Remove uses of #[merge]
2012-11-28 17:09:26 -08:00
Brian Anderson
be6613e048
Remove the crate language
2012-11-26 18:13:54 -08:00