about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
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
2011-05-13rustc: Look types up in the side tablePatrick Walton-8/+11
2011-05-13Remove rustboot from the repository.Graydon Hoare-44/+1
2011-05-13rustc: Write nil types into the node type table wherever plain_ann() is usedPatrick Walton-44/+101
2011-05-13'with' no longer a token; whitespace police.Lindsey Kuper-18/+14
Plus renaming the anonymous objects test to a more descriptive name, and XFAILing it because it doesn't work yet.
2011-05-13More anon obj work; whitespace police in middle::foldLindsey Kuper-32/+52
Passing args to middle::fold::fold_expr_anon_obj by reference to be consistent with the other folds; adding a dummy fold_expr_anon_obj to typeck to be filled in later.
2011-05-13Use new module namespace syntax.Lindsey Kuper-84/+76
2011-05-13More work toward anonymous objects.Lindsey Kuper-8/+15
2011-05-13Bug fixes.Lindsey Kuper-20/+24
Fixed infinite loop on anonymous objects in parser; added expr_anon_obj to walk.rs; fixed syntax of test case.
2011-05-13More progress on anonymous objects.Lindsey Kuper-12/+92
Still segfaulting on the method-overriding.rs test, though.
2011-05-13Correct capitalization of "Option".Lindsey Kuper-10/+9
2011-05-13Starting on support for anonymous objects. Just syntax so far.Lindsey Kuper-0/+70
2011-05-13rustc: Move replace_expr_type() from ty to typeck, as it's only used in the ↵Patrick Walton-45/+52
latter
2011-05-13rustc: Fix long lines in typeck.rsBrian Anderson-1/+2
2011-05-13rustc: Get ann_to_type_params() on board the ↵Patrick Walton-7/+7
ann_to_ty_param_substs_opt_and_ty() train
2011-05-13rustc: Make all type lookups go through the one ↵Patrick Walton-44/+22
ty::ann_to_ty_param_substs_opt_and_ty() function
2011-05-13rustc: Write types contained in "trivial annotations" to the tablePatrick Walton-45/+135
2011-05-13rustc: Change ty::triv_ann() to take a node ID instead of a full annotationPatrick Walton-85/+118
2011-05-13rustc: lowercase the link and link::write modulesBrian Anderson-17/+17
2011-05-13Slight adjustments to shape, rename to type_glue.rs.Graydon Hoare-99/+105
2011-05-13rustc: Add write_type() wherever ann_types are written, except for triv_ann()Patrick Walton-15/+56
2011-05-13Safeguard against using statement or item keywords as value idsMarijn Haverbeke-12/+78
This prevents insane things like 'auto while = 2', which would parse in the previous revision, but then break when you tried to mutate it with 'while = 10'.
2011-05-13Make the parser more careful about keywordsMarijn Haverbeke-1151/+611
Keywords are now only recognized in contexts where they are valid. The lexer no longer recognizes them, all words are lexed as IDENT tokens, that get interpreted by the parser.