about summary refs log tree commit diff
path: root/src/libsyntax/ext/expand.rs
AgeCommit message (Collapse)AuthorLines
2014-07-11Add scaffolding for assigning alpha-numeric codes to rustc diagnosticsJakub Wieczorek-2/+2
2014-07-09Fix all the test falloutCorey Richardson-5/+5
2014-07-09syntax: doc comments all the thingsCorey Richardson-5/+5
2014-07-08carry self ident forward through re-parsingJohn Clements-2/+15
formerly, the self identifier was being discarded during parsing, which stymies hygiene. The best fix here seems to be to attach a self identifier to ExplicitSelf_, a change that rippled through the rest of the compiler, but without any obvious damage.
2014-07-08macro literals should be compared by name onlyJohn Clements-0/+8
2014-07-08implement hygiene for method argsJohn Clements-0/+25
2014-07-08test case for expansion of method macroJohn Clements-2/+13
2014-07-08introducing let-syntaxJohn Clements-0/+18
The let-syntax expander is different in that it doesn't apply a mark to its token trees before expansion. This is used for macro_rules, and it's because macro_rules is essentially MTWT's let-syntax. You don't want to mark before expand sees let-syntax, because there's no "after" syntax to mark again. In some sense, the cleaner approach might be to introduce a new AST node that macro_rules expands into; this would make it clearer that the expansion of a macro is distinct from the addition of a new macro binding. This should work for now, though...
2014-07-08self arg macro test caseJohn Clements-0/+13
2014-07-08test harness cleanupJohn Clements-27/+20
2014-07-08added test for method arg hygieneJohn Clements-0/+13
2014-07-08std: Rename the `ToStr` trait to `ToString`, and `to_str` to `to_string`.Richo Healey-6/+6
[breaking-change]
2014-07-05rustc: Remove CrateId and all related supportAlex Crichton-6/+5
This commit removes all support in the compiler for the #[crate_id] attribute and all of its derivative infrastructure. A list of the functionality removed is: * The #[crate_id] attribute no longer exists * There is no longer the concept of a version of a crate * Version numbers are no longer appended to symbol names * The --crate-id command line option has been removed To migrate forward, rename #[crate_id] to #[crate_name] and only the name of the crate itself should be mentioned. The version/path of the old crate id should be removed. For a transitionary state, the #[crate_id] attribute is still accepted if the #[crate_name] is not present, but it is warned about if it is the only identifier present. RFC: 0035-remove-crate-id [breaking-change]
2014-07-04implement hygiene for ExprFnBlock and ExprProcJohn Clements-1/+15
2014-07-04added test cases for closure arg hygieneJohn Clements-0/+22
2014-07-04comments onlyJohn Clements-3/+2
2014-07-04hygiene for item fn argsJohn Clements-7/+49
also, introduce fn_decl_arg_bindings and expand_and_rename abstractions
2014-07-04comments & test cases for IdentRenamersJohn Clements-11/+63
2014-07-04use PatIdentRenamer for match bindingsJohn Clements-10/+5
2014-07-04comments onlyJohn Clements-3/+3
2014-07-04new_mark -> apply_mark, new_rename -> apply_renameJohn Clements-4/+4
2014-07-04add PatIdentRenamerJohn Clements-6/+37
2014-07-04move RenameList to mtwt, add new_renames abstractionJohn Clements-5/+2
2014-07-04comments, whitespace, rename NameFinderContext to PatIdentFinderJohn Clements-19/+15
2014-07-03simplify and uncomment item-fn-arg hygiene unit testJohn Clements-9/+6
2014-07-03Fix spelling errors.Joseph Crail-1/+1
2014-07-03Simplify PatIdent to contain an Ident rather than a PathJohn Clements-14/+2
Rationale: for what appear to be historical reasons only, the PatIdent contains a Path rather than an Ident. This means that there are many places in the code where an ident is artificially promoted to a path, and---much more problematically--- a bunch of elements from a path are simply thrown away, which seems like an invitation to some really nasty bugs. This commit replaces the Path in a PatIdent with a SpannedIdent, which just contains an ident and a span.
2014-06-27adjust fold to fold over interpolated items/exprs/etc.John Clements-2/+2
Closes #15221
2014-06-27added unit and standalone test for 15221, extra debugging outputJohn Clements-5/+26
2014-06-27remove trailing whitespaceJohn Clements-1/+1
2014-06-27hygiene for match-bound vars now implementedJohn Clements-24/+33
Closes #9384
2014-06-27improve match test case to include guardJohn Clements-4/+4
2014-06-27remove unnecessary abstractionJohn Clements-10/+5
2014-06-27cleanup and shiny new more-functional interfaceJohn Clements-55/+36
2014-06-27WIP match hygiene, compilesJohn Clements-12/+12
2014-06-27get rid of needless wrapper functionJohn Clements-14/+8
2014-06-27working on hygieneJohn Clements-12/+50
2014-06-25don't expand subexprs of for loop, just re-expand whole thing.John Clements-5/+6
Fixes #15167
2014-06-25remove misleading and unnecessary underscoresJohn Clements-2/+3
2014-06-25remove unneccessary pubs, shorten namesJohn Clements-9/+9
2014-06-25remove unneeded visit_ty methodsJohn Clements-9/+0
2014-06-25add unit test for match var hygieneJohn Clements-0/+12
2014-06-25enrich and rename crate_idents test caseJohn Clements-6/+12
2014-06-25comments onlyJohn Clements-4/+9
2014-06-25revive old commented-out test cases as ignored test cases for hygieneJohn Clements-6/+58
2014-06-14rustc: Obsolete the `@` syntax entirelyAlex Crichton-1/+3
This removes all remnants of `@` pointers from rustc. Additionally, this removes the `GC` structure from the prelude as it seems odd exporting an experimental type in the prelude by default. Closes #14193 [breaking-change]
2014-06-11rustc: Move the AST from @T to Gc<T>Alex Crichton-5/+6
2014-06-11syntax: Move the AST from @T to Gc<T>Alex Crichton-38/+40
2014-06-09Implement #[plugin_registrar]Keegan McAllister-122/+30
See RFC 22. [breaking-change]
2014-05-28Expand macros in patternsKeegan McAllister-5/+90