about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-05-23Typecheck @[] correctlyTim Chevalier-0/+25
Previously, if you wrote let @vec[int] foo = @[]; that would be a type error. That didn't seem right, so I changed pushdown to unify the inner type in an unop application with the argument type of the operator type.
2011-05-23rustc: Run the llvm verifier pass before optimization. Closes #376Brian Anderson-0/+4
The optimization passes were hiding some codegen errors so now we run the verifier both before and after optimization.
2011-05-23Get test-pass/utf8.rs to runMarijn Haverbeke-44/+25
This involved a small fix to the unicode-escape character lexing and to the pretty-printer.
2011-05-23Add line breaks to typestate error messagesTim Chevalier-4/+4
2011-05-22rustc: More cleanup of rustc.rsBrian Anderson-65/+61
2011-05-22rustc: Some refactoring of rustc.rsBrian Anderson-46/+63
2011-05-22rustc: Cleanup formatting in rustc.rsBrian Anderson-16/+12
2011-05-21rustc: Add a FIXME to expr_alt type checkingBrian Anderson-0/+2
2011-05-21rustc: Remove unnecessary pushdown from check_expr in the expr_if caseBrian Anderson-12/+7
2011-05-21rustc: If all if branches are _|_, then the entire if is _|_Brian Anderson-3/+1
2011-05-21rustc: Remove outdated commentBrian Anderson-2/+0
2011-05-21rustc: Allow if expressions to failBrian Anderson-14/+31
2011-05-21rustc: Allow alt expressions to failBrian Anderson-3/+9
2011-05-21rustc: Assign ty_bot to nodes in write::bot_ty. Remove FIXMEBrian Anderson-2/+1
2011-05-21rustc: Blocks shouldn't try to return results for ty_botBrian Anderson-1/+2
2011-05-20Correctly check that ! functions always divergeTim Chevalier-2/+40
Also make _|_ unify with any type.
2011-05-20rustc: Don't write metadata for unexported itemsBrian Anderson-1/+4
2011-05-20Merge remote-tracking branch 'graydon/master' into typestate_4Tim Chevalier-28/+252
2011-05-20Error instead of warning for missing returns. Huzzah!Tim Chevalier-4/+2
2011-05-20Annotate erroring functions in session and parserTim Chevalier-9/+9
2011-05-20More work on anonymous objects.Lindsey Kuper-28/+252
2011-05-20Change node_ann hash table to a vector in typestateTim Chevalier-12/+31
2011-05-20rm unnecessary loggingTim Chevalier-9/+1
2011-05-20rm unused importTim Chevalier-1/+0
2011-05-20Add a "fail" after a while(true) loop in two placesTim Chevalier-2/+2
(in preparation for changing the "function may not return" warning to an error)
2011-05-20Make controlflow part of a function typeTim Chevalier-121/+213
Change ty_fn to have a controlflow field. A 'controlflow' is essentially a bit of data that says whether or not this function never returns to the caller (if it never returns, that means it calls "fail" or another "never-returns" function on every control path). Also add syntax for annotating functions that never return: fn foo() -> ! { fail; } for example. Functions marked with ! implicitly have a result type of ty_bot, which is a new type that this commit also adds.
2011-05-20Using the right mode...Eric Holk-1/+1
2011-05-20Translated start_task, but it fails on spp == align_down(spp)Eric Holk-2/+54
2011-05-20Called the new_task upcall. There are refcount issues though.Eric Holk-2/+24
2011-05-20Nicer printer of LLVM array types.Eric Holk-1/+4
2011-05-20A little closure towards translating spawn. We're about ready to do the ↵Eric Holk-4/+47
upcall, except that rustc segfaults.
2011-05-20Added some comments to trans_spawn that sort of explains what needs to happenEric Holk-1/+15
2011-05-20Started working on translating spawn. It correctly generates the task name ↵Eric Holk-1/+41
in the case that it is not provided.
2011-05-20Options fix from erickt.Graydon Hoare-1/+1
2011-05-20Twiddle glue inlining heuristics. ~10% win on build time.Graydon Hoare-9/+25
2011-05-20Elide a bunch of do-nothing take glue.Graydon Hoare-1/+1
2011-05-20Remove redundant secondary declaration of glue.Graydon Hoare-12/+0
2011-05-20rustc: Move the interner to a new module intended to be used for general ↵Patrick Walton-50/+52
data structures
2011-05-19rustc: Translate else if blocks the same as other blocks. Closes #388Brian Anderson-9/+12
2011-05-19rustc: Find the correct outer scope in trans_blockBrian Anderson-1/+5
2011-05-19Revert 106216d67358f13f4be296ee59f711a1f1566bbe.Rafael Ávila de Espíndola-39/+14
This depends on llvm's 131294.
2011-05-19After all that, give up on "complex" version of type_has_pointers and just ↵Graydon Hoare-59/+64
manually inspect. Can't calculate property during interning.
2011-05-19Move the ty_item_table into ty::ctxt.items, move variant_info to ty, and ↵Graydon Hoare-282/+296
start sketching the contains_pointer property on types.
2011-05-19Remove type_glue.rs, don't think it's going to work.Graydon Hoare-105/+0
2011-05-19rustc: Unify variables using a single type instead of keeping a list and ↵Patrick Walton-44/+106
doing it all at the end. This will give us better error messages.
2011-05-19Move type cache and node type table into type context.Graydon Hoare-367/+270
2011-05-19Finish name collision testing.Marijn Haverbeke-8/+131
And fix a the single screw-up in the source code it caught.
2011-05-19OptLevel changes. Accepts levels 0 to 3 only. '-O' is synonym for --OptLevel=2.Graydon Hoare-18/+55
2011-05-19No functional change. Largely removed the native module/non-native module ↵Paul Stansifer-85/+45
distinction from resolve.rs
2011-05-19Typestate checking code no longer uses fold -- only walk.Tim Chevalier-43/+12