about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-05-27Part one of adding globbing to resolve.rs: build up glob links. (Part two ↵Paul Stansifer-21/+119
will follow those links if non-glob resolution fails.)
2011-05-26More delicious dead code removal from runtime, upcalls.Graydon Hoare-65/+8
2011-05-26Track spans for each local variable in typestateTim Chevalier-103/+161
This lets us print better messages in situations with name shadowing.
2011-05-26Remove unused importsTim Chevalier-1/+0
2011-05-26Remove redisue of unused fields from 'ann'.Graydon Hoare-44/+4
2011-05-26Remove residual uses of fold, and fold itself.Graydon Hoare-1876/+9
2011-05-26Remove native glues. All calls to C are direct now.Graydon Hoare-57/+4
2011-05-25Produce a useful error message in trans when attempting to log an ↵Michael Sullivan-6/+13
unsupported type. (Previously, an llvm assert was tripped.)
2011-05-25Fixing typechecking for spawn.Eric Holk-1/+3
2011-05-25dead argument removal part one.Rafael Ávila de Espíndola-4/+3
2011-05-24rustc: Downcase typeck::demand and typeck::pushdownBrian Anderson-67/+67
2011-05-24rustc: Use demand functions instead of open-coded typecheck for spawnBrian Anderson-16/+1
Un-xfail spawn-non-nil-fn
2011-05-24Only one gc glue.Rafael Ávila de Espíndola-3/+3
2011-05-24There is only one yield glue.Rafael Ávila de Espíndola-5/+2
2011-05-24Remove dead code for unwind_glue.Rafael Ávila de Espíndola-2/+2
2011-05-24There is only one activate function now.Rafael Ávila de Espíndola-8/+3
2011-05-24Merge pull request #404 from lkuper/cleanupEric Holk-37/+0
Just removing some unnecessary imports.
2011-05-24Stop showing a 'cyclic import' message for unresolved importsMarijn Haverbeke-4/+5
This only happened for single-length import paths, because the import was being looked up in its own scope.
2011-05-24Just removing some unnecessary imports.Lindsey Kuper-37/+0
2011-05-24Improve nonexistent-module error messageTim Chevalier-1/+1
The error message for (for example) "import vec;" without "use std;" was "cyclic import", which was misleading because there were no cycles. I changed it to "cyclic import or nonexistent module", which doesn't break existing tests.
2011-05-23Improve error message for ambiguous polymorphic typesTim Chevalier-0/+5
If a type still contains free type variables after typechecking (for example, as with "auto foo = []", the result was an assertion failure in typeck. Made it a human-readable error message instead.
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-23Add line breaks to typestate error messagesTim Chevalier-4/+4
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-23/+245
2011-05-20Error instead of warning for missing returns. Huzzah!Tim Chevalier-4/+2
2011-05-20More work on anonymous objects.Lindsey Kuper-23/+245
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-91/+136
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-20Translated start_task, but it fails on spp == align_down(spp)Eric Holk-0/+42
2011-05-20Called the new_task upcall. There are refcount issues though.Eric Holk-1/+23
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-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-2/+2
data structures