about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-08-16Removed trans_comm.rs from the compiler. Updating aio/sio to work with the ↵Eric Holk-315/+0
new chan and port system, started on a networking module for the standard library.
2011-08-16Make let bindings' scope start at their definitionMarijn Haverbeke-14/+56
Also, allow let bindings in a block to shadow each other.
2011-08-15The wonky for...in... whitespace was bothering me. Sorry!Lindsey Kuper-273/+273
2011-08-15rustc: Add a few type-related methods to unique pointers; add typestate supportPatrick Walton-1/+15
2011-08-15Remove a FIXME that I just made obsolete...Michael Sullivan-1/+1
2011-08-15Make bind glue do an llvm tail call to the target. Closes #2.Michael Sullivan-1/+1
Now, llvm probably won't actually *emit* a tail call with the compiler options and configuration we have, but this should punt it over to the more general "do tail calls" bug.
2011-08-15Make GEPi use InBoundsGEP.Michael Sullivan-1/+1
2011-08-15Change arg typechecking procedure to make blocks more useful.Michael Sullivan-11/+28
2011-08-15Implement type inference for type-inferred blocks.Michael Sullivan-4/+14
2011-08-15Add operator 'copy', translates as fall-through.Graydon Hoare-7/+27
2011-08-15Implement an untyped version of the AST, with a coversion back to the typed ↵Paul Stansifer-0/+1
AST..
2011-08-15Use span stacks to track macro expansion for less troublesome error messages.Paul Stansifer-7/+7
2011-08-15Make spans into stacks (to store expansion backtraces).Paul Stansifer-12/+11
2011-08-15Rename a field (so that macros can mention it).Paul Stansifer-8/+8
2011-08-15rustc: Parse and typecheck unique pointersPatrick Walton-0/+6
2011-08-15Fix bad argument type of pprust::print_typeMarijn Haverbeke-1/+1
AST types are boxed, there's no need for every caller to do the unboxing
2011-08-15Add tuple patternsMarijn Haverbeke-24/+92
2011-08-15Tuple fields are immutableMarijn Haverbeke-105/+81
2011-08-15Tuple types back, not constructable yetMarijn Haverbeke-16/+227
2011-08-12Eliminate autoderef on binops and unary negation.Michael Sullivan-99/+45
Autoderef on binops is basically unused, kind of silly, and complicates typechecking. There were only three instances of it in the compiler and the test drivers, two of which were of the form "*foo = foo + 1", which should be written as "*foo += 1" anyways.
2011-08-12Small whitespace cleanups.Michael Sullivan-12/+5
2011-08-12Un-XFAIL do-while-body-failsTim Chevalier-1/+8
Made it work both with optimization enabled, and with optimization disabled. Huzzah!
2011-08-12Remove the last remaining vec expressions in rustcBrian Anderson-5/+8
2011-08-12Don't rely on binop autoderef in the compiler.Michael Sullivan-1/+1
2011-08-12Remove vecs from std::sortBrian Anderson-3/+3
2011-08-12Rename str::connect_ivec to str::connectBrian Anderson-5/+5
2011-08-12Rename std::str::unsafe_from_bytes_ivec to unsafe_from_bytesBrian Anderson-1/+1
2011-08-12Convert all uses of unsafe_from_bytes to unsafe_from_bytes_ivecBrian Anderson-2/+2
2011-08-12Remove str::from_bytesBrian Anderson-1/+1
This is exactly the same as str::unsafe_from_bytes
2011-08-12Properly typecheck unary minusMarijn Haverbeke-1/+9
Closes #813
2011-08-11Handle _|_ - typed things in the bodies of do-while loopsTim Chevalier-0/+5
The resulting code is strange, but perhaps someone else can fix it. The obvious things, like returning body_res, all resulted in completely incomprehensible LLVM errors. Closes #814
2011-08-11rustc: Associate type descriptors with allocas as metadataPatrick Walton-12/+87
2011-08-11rustc: Lowercase "main function not found" errorBrian Anderson-1/+1
2011-08-11rustc: Use spans in some main typeck errorsBrian Anderson-4/+6
2011-08-11Add ast_map::node_span functionBrian Anderson-0/+57
2011-08-11Switch a check for main type from an error to an ICEBrian Anderson-1/+1
This code path doesn't look possible, so I think it indicates a bug. Also, make the message lowercase.
2011-08-11Lowercase the "wrong type in main fn" errorBrian Anderson-1/+1
2011-08-10rustc: Don't free shared memory when --gc is onPatrick Walton-5/+28
2011-08-10Rework check_expr substantially.Michael Sullivan-130/+66
The bulk of check_expr is now check_expr_with_unifier, which takes an expected type and a unification function and will perform the unification on the type it produces. check_expr calls check_expr_with_unifier with a dummy unifier and a new function, check_expr_with, takes an expected type and uses the simple unifier. I think this generally makes thing cleaner, but the purpose for doing this is to enable type inferred lambda-blocks to be useful by allowing the argument types to be unified before the body of the lambda is checked.
2011-08-10Introduce a ty_infer ast node and use it instead of option::t[ty].Michael Sullivan-14/+25
This actually basically makes things worse, since we get less nice type system guarentees but it will make doing type inferred blocks a fair deal less painful. I'm not /really/ happy about this...
2011-08-10rustc: Mark functions as "rust" GCPatrick Walton-1/+3
2011-08-10Eliminate the last vestiges of init_recv.Michael Sullivan-8/+0
2011-08-10Some cleanup in check_expr.Michael Sullivan-14/+12
2011-08-10rustc: Remove unused "trace" upcallsPatrick Walton-13/+0
2011-08-10rustc: Declare GC-related intrinsicsPatrick Walton-0/+8
2011-08-10rustc: Add unique pointers to the set of types we supportPatrick Walton-23/+45
2011-08-10Use actual type, not declared type, when zeroing move argumentsTim Chevalier-3/+14
trans was failing with a bounds check error because the caller was using the declared type (an out-of-scope ty param) and not the actual type in a list of argument types to zero. Closes #811
2011-08-10Factor out creation of object body types.Lindsey Kuper-55/+48
2011-08-10Rename unify::simple to unify::unify.Michael Sullivan-4/+3
2011-08-10Some trivial cleanup.Michael Sullivan-3/+3