Commit Graph

461 Commits

Author SHA1 Message Date
Brian Anderson
b4c9f782e4 stdlib: Add list::from_vec 2011-05-22 02:10:10 -04:00
Brian Anderson
a0f855e488 stdlib: Report an error when getopts is given an argument to a flag option 2011-05-22 02:10:09 -04:00
Brian Anderson
079711d5f6 stdlib: Add regression tests for std::getopts 2011-05-22 02:10:09 -04:00
Brian Anderson
85bcf75da1 stdlib: Add regression test for fs::connect and a FIXME 2011-05-22 02:10:09 -04:00
Brian Anderson
d7d387171c test: Un-xfail alias-uninit-value.rs. Closes #374.
This started working correctly at some point.
2011-05-22 02:03:07 -04:00
Brian Anderson
8102926b4b test: Use more sensible cases in expr-alt-fail-all.
Thanks for the review, Jesse.
2011-05-21 20:01:38 -04:00
Brian Anderson
420d18a448 test: Adda test that all arms of an alt may result in fail 2011-05-21 18:31:40 -04:00
Brian Anderson
4bcdf57d78 test: Add a test for mismatched types of if branches 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
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
Tim Chevalier
7b4eec215c Some tests for ! annotations 2011-05-20 19:54:14 -07:00
Tim Chevalier
a1b440baaa Un-XFAIL some tests that now pass. 2011-05-20 19:54:14 -07:00
Tim Chevalier
77f56f3154 XFAIL two tests for stage0 2011-05-20 19:54:14 -07:00
Tim Chevalier
467b938ea8 Merge remote-tracking branch 'graydon/master' into typestate_4 2011-05-20 18:23:03 -07:00
Tim Chevalier
5de9d27fcc un-XFAIL forgot-ret and update error pattern 2011-05-20 18:20:54 -07:00
Lindsey Kuper
c3410bf927 More work on anonymous objects. 2011-05-20 17:59:56 -07:00
Eric Holk
51e1ce292d Added a couple of test cases for sending messages. One works as expected, the other succeeds unexpectedly. 2011-05-20 16:51:08 -07:00
Brian Anderson
b6d2fe4d74 rustc: Translate else if blocks the same as other blocks. Closes #388 2011-05-19 23:32:09 -04:00
Brian Anderson
879a952a37 rustc: Find the correct outer scope in trans_block 2011-05-19 23:32:08 -04:00
Eric Holk
5d09e12e15 Added two version of reverse and a swap function to the standard library. 2011-05-19 17:25:37 -07:00
Marijn Haverbeke
8a7b544995 Finish name collision testing.
And fix a the single screw-up in the source code it caught.
2011-05-19 21:58:57 +02:00
Graydon Hoare
0a74ffaea3 xfail vector-no-ann.rs. 2011-05-19 12:18:23 -07:00
Lindsey Kuper
38b37fcbdb Checking to make sure we know what 'self' is in nested objects. 2011-05-19 11:52:27 -07:00
Tim Chevalier
8cbdaf4f93 Make trans use span_err for the dreaded "ty_var in trans::type_of" error
This required quite a bit of tiresome plumbing about of spans.
On the bright side, now other errors can be converted to span_err too.

Includes test cases.
2011-05-19 11:40:16 -07:00
Brian Anderson
a98ea4f3ef rustc: Run block cleanups on else if blocks
With the scheme used to translate 'else if' currently the if expression is
translated in a new (else) scope context. If that if expression wants to
result in a value that requires refcounting then it will need to drop the
refcount in the cleanups of the else block.
2011-05-17 22:25:24 -04:00
Marijn Haverbeke
09d8ef8d51 Finally rename std::_xxx to std::xxx
Except for _task, which is still a keyword.
2011-05-17 20:41:41 +02:00
Paul Stansifer
1fdc75ee7c Parser fix: 'fail' was eating the next token that came after it. 2011-05-17 05:40:17 +00:00
Brian Anderson
fbfd8552ab Return a better result from blocks. Closes issue #377
Blocks return in a copy of the result of their ending expression, not the
direct result of the ending expression, as that may be a local variable which
gets zeroed by drop_slot.
2011-05-17 00:46:56 -04:00
Graydon Hoare
cc27e0f8c6 Update a couple tests that slipped through. 2011-05-16 19:08:59 -07:00
Graydon Hoare
a2e2e78103 Merge remote branch 'origin/master' into HEAD
Conflicts:
	src/comp/middle/trans.rs
2011-05-16 19:04:45 -07:00
Graydon Hoare
fbbc1a77d2 Rewrite everything to use [] instead of vec() in value position. 2011-05-16 18:21:22 -07:00
Tim Chevalier
b42bb2cff2 Two tests that the typechecker correctly unifies type arguments in patterns with their expected tag types 2011-05-16 16:59:30 -07:00
Tim Chevalier
971b5d5151 Started adding support for return checking and non-returning function 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-16 16:59:25 -07:00
Brian Anderson
f33d490032 Remove xfail-boot lines from tests 2011-05-14 21:05:22 -04:00
Brian Anderson
ec30c71296 Add a regression test for issue #374 (XFAILed) 2011-05-14 13:29:49 -04:00
Brian Anderson
fb76c25729 WIP 2011-05-14 13:11:37 -04:00
Lindsey Kuper
5679f5c55e 'with' no longer a token; whitespace police.
Plus renaming the anonymous objects test to a more descriptive name,
and XFAILing it because it doesn't work yet.
2011-05-13 17:37:01 -07:00
Lindsey Kuper
d3242b9644 Bug fixes.
Fixed infinite loop on anonymous objects in parser; added
expr_anon_obj to walk.rs; fixed syntax of test case.
2011-05-13 17:35:13 -07:00
Lindsey Kuper
6c1c5b3948 More progress on anonymous objects.
Still segfaulting on the method-overriding.rs test, though.
2011-05-13 17:35:13 -07:00
Lindsey Kuper
7c2979e26f Starting on support for anonymous objects. Just syntax so far. 2011-05-13 17:35:12 -07:00
Marijn Haverbeke
7647b838a1 Remove reserved word tests (since reserved words were removed)
Ping me if you disagree, but I think that in a language that's as
in-flux as rust currently is, it is silly to try and enforce a single
future-compatibility. The reserved words didn't work well with the
parser refactor, so I dropped them for the time being. We can,
eventually, bring them back as type-only reserved words.
2011-05-13 22:00:13 +02:00
Marijn Haverbeke
ae26b775b4 Implement module namespaces
Module names no longer clash with type and value names. The
tokenizer/parser still needs to be taught to be more careful in
identifying keywords, so that we can use 'str' and 'vec' and so as
module names.
2011-05-13 17:20:46 +02:00
Marijn Haverbeke
1a12a7b04b Make module indices hold a list of items
This way, they can support having both a type and a value
of the same name.
2011-05-13 13:34:59 +02:00
Marijn Haverbeke
58ec5d1654 Move capture checking into resolve.rs
Drops capture.rs. The new algorithm also checks for captures function
arguments and obj fields.
2011-05-13 12:44:05 +02:00
Marijn Haverbeke
9419c5df77 Fix mistaken replacements in error-pattern comments in tests 2011-05-12 21:45:29 +02:00
Marijn Haverbeke
3816e57fd2 Downcase std modules again, move to :: for module dereferencing
This should be a snapshot transition.
2011-05-12 21:30:44 +02:00
Marijn Haverbeke
5bea22d75c Add a missed xfail-stage0 2011-05-11 16:44:42 +02:00
Marijn Haverbeke
e9c12ab1d0 Rewrite comp/middle/resolve.rs
* Cleans up the algorithm
 * Move first pass to walk (second still folds)
 * Support part of a type/value namespace split
   (crate metadata and module indices still need to be taught about this)
 * Remove a few blatant inefficiencies (import tables being recreated for
   every lookup, most importantly)
2011-05-11 12:32:37 +02:00
Brian Anderson
e4c3287367 Reuse a single work buffer every time the SHA1 message block is processed.
This finally allows the full lib-sha1 test to run in a reasonable amount of
time. Was 30s, now 3s. Trims a second or two from stage2/rustc. XFAIL lib-sha1
in stage0 since it will be very slow until the next snapshot.
2011-05-11 01:38:17 -04:00