about summary refs log tree commit diff
path: root/src/libsyntax/visit.rs
AgeCommit message (Collapse)AuthorLines
2013-08-15Switch to new <V:Visitor> visitor (rather than @Visitor).Felix S. Klock II-136/+200
Alpha-renamed top-level visit_* functions to walk_*. (Motivation: Distinguish visit action and recursive traversal.) Abstract over `&mut self` rather than over `@mut self`. This required some acrobatics, notably the `impl<E> Visitor<E> for @mut Visitor<E>` and corresponding introduction of `@mut Visitor` and some local `let mut` bindings. Remove oldvisit reference. Added default implementations for all of the Visitor trait methods. Note that both `visit_expr_post` and `visit_ty` are no-op's by default, just like they are in `oldvisit::default_visitor`. Refactoring: extract logic to ease swapping visit for oldvisit (hopefully).
2013-08-11libsyntax: Update from `@Object` to `@mut Object` as requiredNiko Matsakis-48/+48
2013-08-04rm obsolete `for` support from the compilerDaniel Micay-1/+0
2013-08-03remove obsolete `foreach` keywordDaniel Micay-40/+40
this has been replaced by `for`
2013-08-02librustc: Disallow "unsafe" for external functionsPatrick Walton-1/+1
2013-08-02librustc: Introduce a new visitor type based on traits and port syntax to it.Patrick Walton-580/+556
This is preparation for removing `@fn`. This does *not* use default methods yet, because I don't know whether they work. If they do, a forthcoming PR will use them. This also changes the precedence of `as`.
2013-08-01migrate many `for` loops to `foreach`Daniel Micay-39/+39
2013-08-01make `in` and `foreach` get treated as keywordsDaniel Micay-2/+2
2013-07-30syntax: implement foreach .. in .. { .. } via desugaring.Graydon Hoare-0/+5
2013-07-29New naming convention for ast::{node_id, local_crate, crate_node_id, ↵Michael Woerister-20/+20
blk_check_mode, ty_field, ty_method}
2013-07-22De-spanned<T> and renamed ast::field (now ast::Field)Michael Woerister-1/+1
2013-07-22Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.Michael Woerister-18/+18
`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-17librustc: Remove `copy` expressions from the language.Patrick Walton-1/+0
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-129/+148
2013-07-17librustc: Add a lint mode for unnecessary `copy` and remove a bunch of them.Patrick Walton-12/+6
2013-07-17Made ast::blk not use spanned<T> anymore.Michael Woerister-3/+3
2013-07-07De-share ast::TyJames Miller-27/+27
2013-07-07De-manage OptVec<TyParamBounds>James Miller-2/+2
2013-07-07De-share trait_refJames Miller-2/+2
Also, makes the pretty-printer use & instead of @ as much as possible, which will help with later changes, though in the interim has produced some... interesting constructs.
2013-07-07De-managed ast::PathJames Miller-8/+8
2013-07-07Stop allocating view_items with @James Miller-6/+6
2013-07-05Remove visit_struct_methodSeo Sanghyeon-12/+0
2013-06-27Remove many shared pointersPhilipp Brüschweiler-14/+14
Mostly just low-haning fruit, i.e. function arguments that were @ even though & would work just as well. Reduces librustc.so size by 200k when compiling without -O, by 100k when compiling with -O.
2013-06-26Infer default static/Owned bounds for unbounded heap fns/traits (#7264)Ben Blum-2/+6
2013-06-25auto merge of #7365 : cmr/rust/syntax_cleanup, r=Aatchbors-2/+0
Sets the stage for further cleanup (especially mass-slaughter of `@`)
2013-06-25remove the redundant `each` method from OptVecDaniel Micay-2/+2
2013-06-25great renaming propagation: syntaxCorey Richardson-2/+0
2013-06-23Support foreign 'static mut' variables as wellAlex Crichton-1/+1
2013-06-23Add 'static mut' items to the languageAlex Crichton-1/+1
2013-06-23Parse and typecheck (not kindcheck) bounds on trait paths.Ben Blum-3/+7
2013-06-23vec: remove BaseIter implementationDaniel Micay-30/+30
I removed the `static-method-test.rs` test because it was heavily based on `BaseIter` and there are plenty of other more complex uses of static methods anyway.
2013-06-16Add copies to type params with Copy boundNiko Matsakis-99/+113
2013-06-14add IteratorUtil to the preludeDaniel Micay-1/+0
2013-06-12Visitor refactoring: Step 1, couple (Env, vt<Env>) together in a tuple.Felix S. Klock II-286/+272
2013-06-11option: remove redundant old_iter implsDaniel Micay-7/+8
2013-06-04librustc: Disallow multiple patterns from appearing in a "let" declaration.Patrick Walton-5/+1
You can still initialize multiple variables at once with "let (x, y) = (1, 2)".
2013-06-01syntax: move callee_id into the expr_ variantsErick Tryzelaar-5/+5
2013-05-22libextra: Rename the actual metadata names of libcore to libstd and libstd ↵Patrick Walton-0/+2
to libextra
2013-05-14syntax: Remove #[allow(vecs_implicitly_copyable)]Alex Crichton-6/+6
2013-05-12librustc: Make `self` and `static` into keywordsPatrick Walton-0/+1
2013-05-10Remove the '<->' operator from the languageAlex Crichton-4/+0
2013-05-05Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freezeNiko Matsakis-49/+3
Conflicts: src/libcore/core.rc src/libcore/hashmap.rs src/libcore/num/f32.rs src/libcore/num/f64.rs src/libcore/num/float.rs src/libcore/num/int-template.rs src/libcore/num/num.rs src/libcore/num/strconv.rs src/libcore/num/uint-template.rs src/libcore/ops.rs src/libcore/os.rs src/libcore/prelude.rs src/libcore/rt/mod.rs src/libcore/unstable/lang.rs src/librustc/driver/session.rs src/librustc/middle/astencode.rs src/librustc/middle/borrowck/check_loans.rs src/librustc/middle/borrowck/gather_loans.rs src/librustc/middle/borrowck/loan.rs src/librustc/middle/borrowck/preserve.rs src/librustc/middle/liveness.rs src/librustc/middle/mem_categorization.rs src/librustc/middle/region.rs src/librustc/middle/trans/base.rs src/librustc/middle/trans/inline.rs src/librustc/middle/trans/reachable.rs src/librustc/middle/typeck/check/_match.rs src/librustc/middle/typeck/check/regionck.rs src/librustc/util/ppaux.rs src/libstd/arena.rs src/libstd/ebml.rs src/libstd/json.rs src/libstd/serialize.rs src/libstd/std.rc src/libsyntax/ast_map.rs src/libsyntax/parse/parser.rs src/test/compile-fail/borrowck-uniq-via-box.rs src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs src/test/run-pass/borrowck-nested-calls.rs
2013-05-02Remove 'Local Variable' commentsBrendan Zabarauskas-8/+0
2013-05-01rustc: remove the rest of dropErick Tryzelaar-41/+3
Removes: ast::struct_def::dtor syntax::ast::ii_dtor syntax::visit::fk_dtor syntax::ast_map::node_dtor syntax:struct_dtor
2013-04-30new borrow checker (mass squash)Niko Matsakis-0/+6
2013-04-27only use #[no_core] in libcoreDaniel Micay-2/+0
2013-04-19syntax: de-mode and prepare for de-modeing rustcAlex Crichton-52/+52
2013-04-10path -> PathJohn Clements-1/+1
2013-04-05Refactor so that references to traits are not represented using a type with aNiko Matsakis-5/+9
bare function store (which is not in fact a kind of value) but rather ty::TraitRef. Removes many uses of fail!() and other telltale signs of type-semantic mismatch. cc #4183 (not a fix, but related)
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.