summary refs log tree commit diff
path: root/src/libsyntax/visit.rs
AgeCommit message (Collapse)AuthorLines
2013-03-29Add AbiSet and integrate it into the AST.Niko Matsakis-10/+20
I believe this patch incorporates all expected syntax changes from extern function reform (#3678). You can now write things like: extern "<abi>" fn foo(s: S) -> T { ... } extern "<abi>" mod { ... } extern "<abi>" fn(S) -> T The ABI for foreign functions is taken from this syntax (rather than from an annotation). We support the full ABI specification I described on the mailing list. The correct ABI is chosen based on the target architecture. Calls by pointer to C functions are not yet supported, and the Rust type of crust fns is still *u8.
2013-03-28auto merge of #5593 : luqmana/rust/inline-asm, r=catamorphismbors-3/+3
Clean things up a bit. Also, allow selecting intel syntax in addition to the default AT&T dialect.
2013-03-28librustc: Remove common fields and nested enums from the languagePatrick Walton-3/+0
2013-03-27libsyntax: use a struct for inline asm in ast.Luqman Aden-3/+3
2013-03-27syntax: fix pretty printing __log stmtsErick Tryzelaar-1/+1
2013-03-18Now actually allow using constants in those constant expressions for [T * n].Luqman Aden-1/+4
2013-03-15Fix type_use for inline asm.Luqman Aden-2/+2
2013-03-15Actually pass inline asm operands around.Luqman Aden-1/+8
2013-03-12Parse inline assembly.Luqman Aden-0/+1
2013-03-11Implement vector destructuring from tailSeo Sanghyeon-3/+6
2013-03-07librustc: Stop parsing `assert`.Patrick Walton-2/+1
2013-03-07librustc: Remove record patterns from the compilerPatrick Walton-5/+0
2013-03-07libsyntax: Remove struct literal expressions from the compilerPatrick Walton-4/+0
2013-03-07librustc: Remove structural record types from the compilerPatrick Walton-5/+0
2013-03-06Add manual &self/ and &static/ and /&self declarations thatNiko Matsakis-5/+5
are currently inferred. New rules are coming that will require them to be explicit. All add some explicit self declarations.
2013-03-05auto merge of #5212 : thestinger/rust/iter, r=graydonbors-6/+6
A small step towards fixing #2827
2013-03-04Remove unused imports throughout src/Alex Crichton-3/+0
2013-03-03replace option::iter with a BaseIter implDaniel Micay-6/+6
2013-03-02librustc: Stop parsing `fn@`, `fn~`, and `fn&`Patrick Walton-11/+0
2013-03-02libsyntax: Remove `fn@`, `fn~`, and `fn&` from libsyntax. rs=defunPatrick Walton-71/+70
2013-03-01Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-0/+1
2013-02-28Fix implicit leaks of imports throughout librariesAlex Crichton-0/+1
Also touch up use of 'pub' and move some tests around so the tested functions don't have to be 'pub'
2013-02-28Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-57/+90
2013-02-27Introduce lifetime declarations into the lists of type parameters.Niko Matsakis-53/+69
Major changes are: - replace ~[ty_param] with Generics structure, which includes both OptVec<TyParam> and OptVec<Lifetime>; - the use of syntax::opt_vec to avoid allocation for empty lists; cc #4846
2013-02-25libsyntax: progress on making syntax::visit vecs_implicitly_copyable-freeErick Tryzelaar-200/+225
2013-02-25libsyntax: convert visit to pass ty_params by referenceErick Tryzelaar-122/+149
2013-02-25libsyntax: minor cleanupErick Tryzelaar-23/+24
2013-02-19libsyntax: make enum variants take refsErick Tryzelaar-17/+45
2013-02-07Make ~fn non-copyable, make &fn copyable, split barefn/closure types,Niko Matsakis-6/+9
correct handling of moves for struct-record update. Part of #3678. Fixes #2828, #3904, #4719.
2013-02-01Remove fail keyword from lexer & parser and clean up remaining calls toNick Desaulniers-1/+0
fail Fix merge conflicts - Issue 4524
2013-01-31Workaround for #4717: pad contents of ast. rs=breakageNiko Matsakis-1/+1
2013-01-31Finalize moves-based-on-type implementation.Niko Matsakis-7/+6
Changes: - Refactor move mode computation - Removes move mode arguments, unary move, capture clauses (though they still parse for backwards compatibility) - Simplify how moves are handled in trans - Fix a number of illegal copies that cropped up - Workaround for bug involving def-ids in params (see details below) Future work (I'll open bugs for these...): - Improve error messages for moves that are due to bindings - Add support for moving owned content like a.b.c to borrow check, test in trans (but I think it'll "just work") - Proper fix for def-ids in params Def ids in params: Move captures into a map instead of recomputing. This is a workaround for a larger bug having to do with the def-ids associated with ty_params, which are not always properly preserved when inlining. I am not sure of my preferred fix for the larger bug yet. This current fix removes the only code in trans that I know of which relies on ty_param def-ids, but feels fragile.
2013-01-29libsyntax: De-export libsyntax. rs=deexportingPatrick Walton-46/+48
2013-01-15librustc: Make the default sigil for block lambdas `&` instead of `@`.Graydon Hoare-1/+2
2013-01-10librustc: Implement `&static` as the replacement for `Durable`. r=nmatsakisPatrick Walton-2/+5
2013-01-09A collection of refactorings that I found it hard/tiresome to divide:Niko Matsakis-108/+116
- Make `extern fn()` assignable to any closure type, rather than a subtype. - Remove unused int_ty_set and float_ty_set - Refactor variable unification and make it more DRY - Do fn sub/lub/glb on the level of fn_sig - Rename infer::to_str::ToStr to infer::to_str::InferStr - Capitalize names of various types - Correct hashing of FnMeta - Convert various records-of-fns into structs-of-fns. This is both eliminating use of deprecated features and more forwards compatible with fn reform. r=pcwalton
2013-01-08librustc: Make unqualified identifier searches terminate at the nearest ↵Patrick Walton-0/+2
module scope. r=tjc
2013-01-08Revert "librustc: Make unqualified identifier searches terminate at the ↵Patrick Walton-2/+0
nearest module scope. r=tjc" This reverts commit a8d37af2473da79be704c9ce2374f278c47177b6.
2013-01-08librustc: Make unqualified identifier searches terminate at the nearest ↵Patrick Walton-0/+2
module scope. r=tjc
2012-12-27librustc: Terminate name searches at the nearest module scope for paths that ↵Patrick Walton-1/+6
contain at least two components. r=graydon
2012-12-17Add support for destructuring vectors in match expressionsJakub Wieczorek-1/+9
2012-12-12syntax: remove most code handling old-style syntax extensions.Graydon Hoare-9/+2
2012-12-10Remove un-needed code for obsolete classesTim Chevalier-9/+3
and rename "class" to "struct" everywhere possible (except local vars, I was too lazy for that) -- that is why this commit is so big. No review, just dead code removal and renaming. Closes #3515
2012-12-04librustc: Remove all legacy pattern bindings from libsyntax and librustc. ↵Patrick Walton-29/+29
rs=refactoring
2012-12-03Update license, add license boilerplate to most files. Remainder will follow.Graydon Hoare-0/+10
2012-11-30librustc: Make `a.b()` always a method call. r=nmatsakisPatrick Walton-0/+5
2012-11-29librustc: Eliminate most expressions of the form `a.b()` that are not method ↵Patrick Walton-102/+117
calls. rs=refactoring
2012-11-29Distinguish `stmt_mac`s that are followed by semicolons and those that aren't.Paul Stansifer-1/+1
2012-11-29Allow for macros to occur in statement position.Paul Stansifer-1/+2
2012-11-26Remove the crate languageBrian Anderson-10/+0