about summary refs log tree commit diff
path: root/src/test
AgeCommit message (Collapse)AuthorLines
2011-06-28Re-enabling some tests.Eric Holk-11/+2
2011-06-28Removed dom_owned, splitting things between task_owned and kernel_owned. Had ↵Eric Holk-0/+6
to re-xfail a few tests brson recently un-xfailed.
2011-06-28Teach the parser and typechecker to understand port[int](). Closes #588Eric Holk-0/+44
2011-06-28Add test case for non-matching crate metadata in use statementsBrian Anderson-0/+4
2011-06-28Rework how linkage attributes are determinedBrian Anderson-0/+207
The meta items within a crate's link attribute are used in linkage: #[link(name = "std", vers = "1.0", custom = "whatever")]; Name and vers are treated specially, and everything else is hashed together into the crate meta hash. Issue #487
2011-06-28Add some helper functions for attributes. Issue #487Brian Anderson-201/+0
2011-06-28Another test for typestate and expr_fnTim Chevalier-0/+10
2011-06-28Handle lazy binops properly in typestateTim Chevalier-0/+18
The typestate analysis now reflects that the second operand of a logical and or or may not be evaluated.
2011-06-28Tests only: more tests with constraints and loopsTim Chevalier-0/+53
2011-06-28Write metadata for more meta_item types. Issue #487Brian Anderson-0/+2
2011-06-28Use 'resource' rather than 'res' as a keywordMarijn Haverbeke-6/+6
Resources are now defined like... resource fd(int n) { close(n); } Calling fd with an int will then produce a non-copyable value that, when dropped, will call close on the given int.
2011-06-28Add test cases for resourcesMarijn Haverbeke-0/+24
2011-06-28'#simplext' -> '#macro'Paul Stansifer-9/+9
2011-06-28Add simple syntax extension (#simplext)Paul Stansifer-18/+70
2011-06-28Use "" in the native_name as an indication that no extra options have toRafael Ávila de Espíndola-7/+7
be passed to the "linker". Use that for libc.
2011-06-27Tests for while loops that may invalidate constraintsTim Chevalier-0/+50
Wrote some small test cases that use while loops and moves, to make sure the poststate for the loop body gets propagated into the new prestate and deinitialization gets reflected. Along with that, rewrite the code for intersecting states. I still find it dodgy, but I guess I'll continue trying to add more tests. Also, I'll probably feel better about it once I start formalizing the algorithm.
2011-06-27Improve the tests for vector self appending.Michael Sullivan-0/+26
2011-06-27Add a test written by jdm that tests repeated vector self appending.Michael Sullivan-0/+12
2011-06-27Record and link with used native libraries.Rafael Ávila de Espíndola-7/+7
2011-06-27Implement move for scalar valuesTim Chevalier-0/+7
Before, something like: let int y = 42; let int x; x <- y; would cause an LLVM assertion failure. Fixed it.
2011-06-27Fixed a few concurrency bugs. Still not perfect, but overall it seems much ↵Eric Holk-4/+4
more reliable.
2011-06-27Basic multithreading support. The infinite loops test successfully maxes out ↵Eric Holk-0/+29
the CPU.
2011-06-27Added a parallel fibonacci program. It doesn't actually run in parallel yet, ↵Eric Holk-0/+41
but it will give us something fun to test threading with.
2011-06-25Fail typechecking for bad binop/type combinationsBrian Anderson-0/+214
Includes assignment operations. Add regression tests for lots of less useful, less used or unexpected combinations, as well as a selection of compile-fail tests. Closes #500 (again!)
2011-06-25Add a test for mismatched types when comparing functionsBrian Anderson-0/+8
2011-06-25Remove variable name 'res' from test suiteMarijn Haverbeke-147/+147
2011-06-24Invalidate constraints correctly after an assignment expressionTim Chevalier-0/+40
Modified typestate to throw away any constraints mentioning a variable on the LHS of an assignment, recv, assign_op, or on either side of a swap. Some code cleanup as well.
2011-06-24Add a test that tests typestate checking inside of fn exprs.Michael Sullivan-0/+11
2011-06-24Make a test compile faster.Paul Stansifer-3/+26
2011-06-23test: Improve ternary operator testsBrian Anderson-1/+7
2011-06-23rustc: Add ternary operator. Closes #565Brian Anderson-0/+46
The implementation is so simple it might be considered cheating: at almost every step the expr_ternary is just converted to expr_if.
2011-06-23Fix type inference inside of anonymous functions.Michael Sullivan-0/+6
2011-06-23Wrote swap_context in assembly. Closes #548. This also allows us to ↵Eric Holk-4/+7
re-enable optimization on OSX for both gcc and clang. Also, re-enamed task-comm-1.rs, which was previously broken by optimization.
2011-06-23Correct error message for argument mode mismatchTim Chevalier-0/+9
If you use a function expecting an alias argument in a context that expects a function expecting a value argument, or vice versa, the previous error message complained that the number of arguments was wrong. Fixed the error message to be accurate.
2011-06-23Typo fix in test case.Lindsey Kuper-1/+1
2011-06-22Compute typestate properly for moveTim Chevalier-0/+6
typestate now drops constraints correctly in the post-state of a move expression or a declaration whose op is a move. It doesn't yet drop constraints mentioning variables that get updated. To do this, I had to change typestate to use trit-vectors instead of bit-vectors, because for every constraint, there are three possible values: known-to-be-false (e.g. after x <- y, init(y) is known-to-be-false), known-to-be-true, and unknown. Before, we conflated known-to-be-false with unknown. But move requires them to be treated differently. Consider: (program a) (a1) x = 1; (a2) y <- x; (a3) log x; (program b) (b1) x = 1; (b2) y <- z; (b3) log x; With only two values, the postcondition of statement a2 for constraint init(x) is the same as that of b2: 0. But in (a2)'s postcondition, init(x) *must* be false, but in (b2)'s condition, it's just whatever it was in the postcondition of the preceding statement.
2011-06-22test: Add test for string matching in pattern alts. Closes #53Brian Anderson-0/+21
2011-06-22rustc: Convert field access on invalid types from an ICE to a fatal errorBrian Anderson-1/+11
Closes #367
2011-06-22rustc: Don't commit unification changes until unify succeedsBrian Anderson-0/+9
This is so that subsequent reports about type mismatches get the types correct. Issue #516
2011-06-22rustc: Handle valueless ret expressions as block results. Closes #521Brian Anderson-0/+11
2011-06-22Fix bug: globbed imports were importing everything visible from the otherPaul Stansifer-5/+19
module, not just everything exported.
2011-06-22rustc: Introduce and parse additional meta_item formsBrian Anderson-0/+17
Examples: #[test], #[link(name = "vers")] Issue #487
2011-06-22test: Enable more testsBrian Anderson-30/+2
2011-06-21Emit a better error message for unbound type parameters in nested functionsTim Chevalier-0/+11
This code was causing a bounds check failure: fn hd[U](&vec[U] v) -> U { fn hd1(&vec[U] w) -> U { ret w.(0); } ret hd1(v); } because in hd1, U was being treated as if it referred to a type parameter of hd1, rather than referring to the lexically enclosing binding for U that's part of hd. I'm actually not sure whether this is a legit program or not. But I wanted to get rid of the bounds check error, so I assumed that program shouldn't compile and made it a proper error message.
2011-06-21Comments for all the anon obj tests.Lindsey Kuper-1/+14
2011-06-21Serialize constraints in types (literal arguments still not supported)Tim Chevalier-2/+32
This involved, in part, changing the ast::def type so that a def_fn has a "purity" field. This lets the typechecker determine whether functions defined in other crates are pure. It also required updating some error messages in tests. As a test for cross-crate constrained functions, I added a safe_slice function to std::str (slice(), with one of the asserts replaced with a function precondition) and some test cases (various versions of fn-constraint.rs) that call it. Also, I changed "fn" to "pred" for some of the boolean functions in std::uint.
2011-06-21Some progress on support for extending objects with new fields (issueLindsey Kuper-10/+95
into four separate issues (#538, #539, #540, #543) with corresponding tests.
2011-06-21More descriptive identifiers.Lindsey Kuper-11/+10
2011-06-21test: Add a test for distinguishing attributes from extensionsBrian Anderson-0/+12
Issue #487
2011-06-21rustc: Remove unused slice call from extfmt. Closes #532Brian Anderson-0/+3