about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-05-17rustc: Have typechecking no longer rebuild the ASTPatrick Walton-49/+55
2011-05-17rustc: Run block cleanups on else if blocksBrian Anderson-2/+9
With the scheme used to translate 'else if' currently the if expression is translated in a new (else) scope context. If that if expression wants to result in a value that requires refcounting then it will need to drop the refcount in the cleanups of the else block.
2011-05-17rustc: Remove typeck::check_item_fn(); it's entirely superfluous!Patrick Walton-25/+1
2011-05-17rustc: Make check_const() not rebuild the AST (although it's not called at ↵Patrick Walton-4/+1
the moment!)
2011-05-17rustc: Make check_block not rebuild the ASTPatrick Walton-13/+5
2011-05-17rustc: Don't rebuild the AST when writing back localsPatrick Walton-62/+94
2011-05-17rustc: Print the types of declarations in --typed-pretty modePatrick Walton-0/+9
2011-05-17rustc: Pull the type out of the correct expression when typechecking channel ↵Patrick Walton-1/+1
types. Puts out burning tinderbox.
2011-05-17rustc: Fix return value of expr_spawn case in pushdown_expr. Should put out ↵Patrick Walton-2/+0
soon-to-be-burning tinderbox.
2011-05-17rustc: Don't rebuild the AST when typechecking expressionsPatrick Walton-525/+232
2011-05-17rustc: Add a typed pretty-printing mode for debuggingPatrick Walton-14/+60
2011-05-17Fixing compile problems from recent changes.Eric Holk-2/+2
2011-05-17Removing the TODO comment.Eric Holk-4/+0
2011-05-17Added a few more expr_spawn cases so the spawn.rs test case gets a little ↵Eric Holk-0/+17
further before failing.
2011-05-17rustc: Don't rebuild call or bind expressions during typecheckingPatrick Walton-30/+14
2011-05-17rustc: Make return value checking warnings a little prettier. Also introduce ↵Patrick Walton-3/+10
a new "note" diagnostic level.
2011-05-17rustc: Flatten annotationsPatrick Walton-589/+307
2011-05-17Alias-ify the parser and lexerMarijn Haverbeke-123/+121
This only shaves a measly 19k off the rustc binary... but hey, every little thing helps.
2011-05-17Finally rename std::_xxx to std::xxxMarijn Haverbeke-760/+760
Except for _task, which is still a keyword.
2011-05-17Parser fix: 'fail' was eating the next token that came after it.Paul Stansifer-1/+0
2011-05-17Switch pretty printer to new vec syntaxMarijn Haverbeke-3/+4
2011-05-17Return a better result from blocks. Closes issue #377Brian Anderson-0/+3
Blocks return in a copy of the result of their ending expression, not the direct result of the ending expression, as that may be a local variable which gets zeroed by drop_slot.
2011-05-16Rename aux.rs to auxiliary.rs since win32 doesn't like files named "aux". ↵Graydon Hoare-3/+2
Really.
2011-05-16Merge remote branch 'origin/master' into HEADGraydon Hoare-124/+3238
Conflicts: src/comp/middle/trans.rs
2011-05-16Rewrite everything to use [] instead of vec() in value position.Graydon Hoare-878/+878
2011-05-16Begin vec() -> [] transition.Graydon Hoare-3/+3
2011-05-16make the return-checker happy about pretty::pp::base_indentTim Chevalier-0/+1
2011-05-16Fix get_os and get_archTim Chevalier-12/+17
get_os and get_arch were failing to return a value in the error case; they were also assuming that strings are indexed from 1. No idea how they ever worked, but anyway, fixed.
2011-05-16Started adding support for return checking and non-returning function ↵Tim Chevalier-51/+3205
annotations * Reorganized typestate into several modules. * Made typestate check that any function with a non-nil return type returns a value. For now, the check is a warning and not an error (see next item). * Added a "bot" type (prettyprinted as _|_), for constructs like be, ret, break, cont, and fail that don't locally return a value that can be inspected. "bot" is distinct from "nil". There is no concrete syntax for _|_, while the concrete syntax for the nil type is (). * Added support to the parser for a ! annotation on functions whose result type is _|_. Such a function is required to have either a fail or a call to another ! function that is reached in all control flow paths. The point of this annotation is to mark functions like unimpl() and span_err(), so that an alt with a call to err() in one case isn't a false positive for the return-value checker. I haven't actually annotated anything with it yet. * Random bugfixes: * * Fixed bug in trans::trans_binary that was throwing away the cleanups for nested subexpressions of an and or or (tests: box-inside-if and box-inside-if2). ** In typeck, unify the expected type arguments of a tag with the actual specified arguments.
2011-05-16Noticed that metadata::Encode::enc_sty didn't have a case for ty_task, so I ↵Tim Chevalier-0/+1
added one (though this wasn't causing the problem I was seeing...
2011-05-16rustc: Fix indentation in typeck::check_lit()Patrick Walton-10/+9
2011-05-16rustc: Don't rebuild the call expression in typeck::replace_expr_type()Patrick Walton-39/+3
2011-05-16rustc: Don't unpack annotations in trans::lval_generic_fn()Patrick Walton-12/+2
2011-05-16rustc: Make the parser use the internerPatrick Walton-29/+31
2011-05-16Replace --bitcode with the canonical --emit-llvmKelly Wilson-6/+6
2011-05-16Add automatic exe generation capabilities. Add --bitcode flag to generate ↵Kelly Wilson-26/+110
only an LLVM bitcode file.
2011-05-16rustc: Factor out the code that interns types into an "interner" data structurePatrick Walton-36/+61
2011-05-16rustc: Don't rebuild AST patterns during typecheckingPatrick Walton-44/+13
2011-05-16rustc: Replace the redundant typeck::node_ann_ty_params() with ↵Patrick Walton-20/+4
ty::ann_to_type_params()
2011-05-16rustc: Make the type collection pass no longer rebuild the ASTPatrick Walton-213/+129
2011-05-16rustc: Fix indentation in ty_param_count_and_ty_for_def()Patrick Walton-5/+5
2011-05-16rustc: Add an item_ann() accessor functionPatrick Walton-0/+20
2011-05-15rustc: Wait until generic glue is actually emitted to define it as internalBrian Anderson-1/+6
The verifier was not liking this when generating unoptimized bitcode. Per LLVM docs it is not valid for function declarations to be marked internal, but their implementations may be.
2011-05-14rustc: Rename 'Unify' modules to 'unify'Brian Anderson-17/+17
2011-05-14rustc: Use walk instead of fold for the first item collection passPatrick Walton-15/+10
2011-05-14rustc: Change "Collect" to "collect"Patrick Walton-4/+3
2011-05-14fix a long line that i forgot to commitMarijn Haverbeke-1/+1
2011-05-14Mark IDENT tokens that are followed by ::Marijn Haverbeke-18/+19
So that the type parser won't go off and try to parse a vec type when it sees vec::init_op.
2011-05-14rustc: Dispose intrinsics memory bufferBrian Anderson-0/+2
2011-05-14rustc: Dispose the intrinsics LLVMModuleRefBrian Anderson-1/+4