Tim Chevalier
79693fab1f
Fix typo in error message
2011-05-26 18:00:54 -07:00
Graydon Hoare
9f95538462
Remove redisue of unused fields from 'ann'.
2011-05-26 17:26:59 -07:00
Graydon Hoare
2561b01211
Remove residual uses of fold, and fold itself.
2011-05-26 17:16:54 -07:00
Graydon Hoare
8e945dcd81
Remove native glues. All calls to C are direct now.
2011-05-26 16:45:01 -07:00
Graydon Hoare
9491dc3e61
Add early returns to rustc main on non-compiling paths.
2011-05-26 15:22:08 +00:00
Graydon Hoare
dc1b34288c
Pretty print view items with :: rather than :.
2011-05-25 22:09:36 -07:00
Brian Anderson
29a801565a
rustc: Fail better when the first argument to #fmt is not a string literal
2011-05-25 23:50:19 -04:00
Brian Anderson
c4e9d8fb91
rustc: Fail when #fmt is given too many arguments
2011-05-25 23:43:04 -04:00
Michael Sullivan
1b29892b5b
Produce a useful error message in trans when attempting to log an unsupported type.
...
(Previously, an llvm assert was tripped.)
2011-05-25 18:54:33 -04:00
Eric Holk
d72d50473f
Fixing typechecking for spawn.
2011-05-25 18:01:45 -04:00
Rafael Ávila de Espíndola
94129c4216
dead argument removal part one.
2011-05-25 15:33:57 -04:00
Brian Anderson
9a88ba2b81
rustc: Downcase typeck::demand and typeck::pushdown
2011-05-24 20:26:46 -04:00
Brian Anderson
6473b73174
rustc: Use demand functions instead of open-coded typecheck for spawn
...
Un-xfail spawn-non-nil-fn
2011-05-24 20:23:21 -04:00
Rafael Ávila de Espíndola
de2e84e5b0
Only one gc glue.
2011-05-24 18:52:31 -04:00
Rafael Ávila de Espíndola
ac836dd79c
There is only one yield glue.
2011-05-24 18:29:08 -04:00
Rafael Ávila de Espíndola
b1292580b9
Remove dead code for unwind_glue.
2011-05-24 17:28:37 -04:00
Rafael Ávila de Espíndola
0fc91b6ecc
There is only one activate function now.
2011-05-24 17:00:45 -04:00
Eric Holk
2e8afc7b47
Merge pull request #404 from lkuper/cleanup
...
Just removing some unnecessary imports.
2011-05-24 13:51:00 -07:00
Marijn Haverbeke
fbc0e840e3
Stop showing a 'cyclic import' message for unresolved imports
...
This only happened for single-length import paths, because the import
was being looked up in its own scope.
2011-05-24 20:58:38 +02:00
Lindsey Kuper
f1d3b88f0a
Just removing some unnecessary imports.
2011-05-24 11:22:40 -07:00
Tim Chevalier
bad05e20a3
Improve nonexistent-module error message
...
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-24 10:47:58 -07:00
Tim Chevalier
c9a8bdee2f
Improve error message for ambiguous polymorphic types
...
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-23 19:46:27 -07:00
Tim Chevalier
b620be9cd2
Typecheck @[] correctly
...
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-23 17:17:49 -07:00
Brian Anderson
2505a2312e
rustc: Run the llvm verifier pass before optimization. Closes #376
...
The optimization passes were hiding some codegen errors so now we run the
verifier both before and after optimization.
2011-05-23 19:52:57 -04:00
Marijn Haverbeke
86d51ec24b
Get test-pass/utf8.rs to run
...
This involved a small fix to the unicode-escape character lexing and
to the pretty-printer.
2011-05-23 23:25:55 +02:00
Tim Chevalier
2a73c4ffab
Add line breaks to typestate error messages
2011-05-23 13:32:29 -07:00
Brian Anderson
db7611c4c9
rustc: More cleanup of rustc.rs
2011-05-22 16:58:33 -04:00
Brian Anderson
1081d0aee9
rustc: Some refactoring of rustc.rs
2011-05-22 16:41:32 -04:00
Brian Anderson
65ec38c096
rustc: Cleanup formatting in rustc.rs
2011-05-22 16:07:30 -04:00
Brian Anderson
d82e9c1874
rustc: Add a FIXME to expr_alt type checking
2011-05-21 18:35:21 -04:00
Brian Anderson
4504e23a82
rustc: Remove unnecessary pushdown from check_expr in the expr_if case
2011-05-21 18:18:48 -04:00
Brian Anderson
e24d7ae967
rustc: If all if branches are _|_, then the entire if is _|_
2011-05-21 18:18:48 -04:00
Brian Anderson
085fb1a2db
rustc: Remove outdated comment
2011-05-21 14:43:04 -04:00
Brian Anderson
b62bf8cede
rustc: Allow if expressions to fail
2011-05-21 14:22:01 -04:00
Brian Anderson
6824f119fc
rustc: Allow alt expressions to fail
2011-05-21 13:22:01 -04:00
Brian Anderson
418b4c4567
rustc: Assign ty_bot to nodes in write::bot_ty. Remove FIXME
2011-05-21 13:02:58 -04:00
Brian Anderson
779dd809d2
rustc: Blocks shouldn't try to return results for ty_bot
2011-05-21 12:56:31 -04:00
Tim Chevalier
755ca8eb73
Correctly check that ! functions always diverge
...
Also make _|_ unify with any type.
2011-05-20 19:54:14 -07:00
Brian Anderson
2fc0bedc83
rustc: Don't write metadata for unexported items
2011-05-20 21:32:57 -04:00
Tim Chevalier
467b938ea8
Merge remote-tracking branch 'graydon/master' into typestate_4
2011-05-20 18:23:03 -07:00
Tim Chevalier
964898eaf1
Error instead of warning for missing returns. Huzzah!
2011-05-20 18:20:54 -07:00
Tim Chevalier
fed0486c33
Annotate erroring functions in session and parser
2011-05-20 18:20:54 -07:00
Lindsey Kuper
c3410bf927
More work on anonymous objects.
2011-05-20 17:59:56 -07:00
Tim Chevalier
c8d488b337
Change node_ann hash table to a vector in typestate
2011-05-20 16:57:37 -07:00
Tim Chevalier
9128a1bab8
rm unnecessary logging
2011-05-20 16:57:37 -07:00
Tim Chevalier
7e82f23bc0
rm unused import
2011-05-20 16:57:37 -07:00
Tim Chevalier
551fb13689
Add a "fail" after a while(true) loop in two places
...
(in preparation for changing the "function may not return" warning
to an error)
2011-05-20 16:57:37 -07:00
Tim Chevalier
a08a376d6e
Make controlflow part of a function type
...
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-20 16:57:37 -07:00
Eric Holk
3dd2877975
Using the right mode...
2011-05-20 16:51:09 -07:00
Eric Holk
0de27ce8bd
Translated start_task, but it fails on spp == align_down(spp)
2011-05-20 16:51:09 -07:00