Brian Anderson
2a0b6f5fe2
test: xfail-win32 run-pass/companionmod. not sure why it's broke
2012-06-01 21:28:55 -07:00
Tim Chevalier
6e2aa3b998
Port more resource tests to classes
2012-06-01 20:40:35 -07:00
Tim Chevalier
de40318037
Tests for copyability and sendability rules for classes
...
Closes #2296
2012-06-01 20:40:35 -07:00
Tim Chevalier
11b4a92fc8
Port another resource test to use classes
2012-06-01 20:40:35 -07:00
Tim Chevalier
facb5c08c6
Enforce rule that classes with dtors aren't copyable
...
The test for this is copy-a-resource.
2012-06-01 20:40:35 -07:00
Tim Chevalier
b67f8e340b
Remove obsolete test
...
This test no longer makes sense with classes instead of resources,
since class types can't be dereferenced.
2012-06-01 20:40:35 -07:00
Tim Chevalier
f6c552d6d7
Update task-killjoin-rsrc to use classes
...
This test was xfailed, but I decided to update it to use classes
anyway. The test currently compiles, but fails with a runtime error.
So it's still xfailed.
2012-06-01 20:40:34 -07:00
Tim Chevalier
10c141a232
Port more test cases to use classes instead of resources
2012-06-01 20:40:34 -07:00
Brian Anderson
1e801baa84
Revert "test: xfail-win32 run-pass/cci_borrow.rs"
...
This reverts commit 30f874bac5
.
2012-06-01 18:27:38 -07:00
Brian Anderson
7737c094af
Revert "test: xfail-win32 run-pass/cci_capture_clause.rs"
...
This reverts commit 2ab1b5838b
.
2012-06-01 18:27:30 -07:00
Brian Anderson
2ab1b5838b
test: xfail-win32 run-pass/cci_capture_clause.rs
2012-06-01 17:40:14 -07:00
Brian Anderson
30f874bac5
test: xfail-win32 run-pass/cci_borrow.rs
2012-06-01 17:26:01 -07:00
Brian Anderson
7b862a5278
core: Fix handling of 0-padded floats with precision in #fmt
2012-06-01 16:10:37 -07:00
Brian Anderson
630c084da6
test: Move tests with rustc deps into run-pass-fulldeps
...
These tests require a lot more to be built before running so are not part of
check-lite
2012-06-01 16:01:56 -07:00
Lindsey Kuper
3c622a5b12
Clarifying comments in test.
2012-06-01 10:30:50 -07:00
Lindsey Kuper
43eb5f0a2e
More tests wrt #2263 .
2012-06-01 09:26:48 -07:00
Lindsey Kuper
9a89a7503d
Clarify comments in test.
2012-06-01 09:26:48 -07:00
Niko Matsakis
c2ce2741a7
allow mutable vectors and so forth to be used as immutable slices
2012-05-31 15:07:09 -07:00
Eric Holk
0470abe1d2
Allow some resources to be considered const.
2012-05-31 13:55:54 -07:00
Lindsey Kuper
f394933641
Allow optional comma before with
in FRU. Closes #2463 .
2012-05-31 12:20:26 -07:00
Kevin Cantu
7dcbaedd32
Rename librustsyntax to libsyntax
...
Per issue #2418 .
2012-05-31 11:15:00 -07:00
Brian Anderson
615f532475
test: Update test with current error message
...
These errors where previously generated by typestate, but there seem to
be other passes that cover this now.
2012-05-31 00:06:10 -07:00
Brian Anderson
6b4cf00552
test: Add an error pattern to small-negative-indexing
2012-05-30 17:48:05 -07:00
Eric Holk
ad292a8c73
Add xorshift to core::rand, which gave a 3x speedup for graph generation in the bfs code. Also, remove trailing white space.
2012-05-30 17:39:53 -07:00
Eric Holk
09a32aedb5
Remove warnings in std::par.
2012-05-30 17:39:53 -07:00
Eric Holk
58fdbdc4ef
Avoid some more copies.
2012-05-30 17:39:53 -07:00
Eric Holk
f0c345841c
Added a factory version of par::mapi, which avoids the need for share_arc, and copies arcs between tasks better.
2012-05-30 17:39:53 -07:00
Eric Holk
f05040f17a
Use std::deque now that the bugs are fixed. Also, avoid a few copies.
2012-05-30 17:39:53 -07:00
Michael Sullivan
e5757923cd
Add a test for that last bug. Oops.
2012-05-30 17:12:50 -07:00
Michael Sullivan
1eebb1fe87
Add a test for the just closed issue #2426 .
2012-05-30 16:02:48 -07:00
Eric Holk
ccb54f0ce0
Move par into libstd. Closes #2441 .
2012-05-30 12:03:51 -07:00
Eric Holk
f5554db734
Adding xfail-fast, since multi-crate tests don't work on Windows.
2012-05-30 12:03:51 -07:00
Eric Holk
07830612fd
Adding a test to make sure CCI works with capture clauses.
2012-05-30 12:03:51 -07:00
Eric Holk
f49b891ce5
Include capture clauses when generating metadata.
...
This may fix the bug that's blocking Issue #2441 .
2012-05-30 12:03:51 -07:00
Niko Matsakis
dca11e1f99
test our some of the various combinations of fn subtyping
2012-05-30 12:02:01 -07:00
Niko Matsakis
5b8abec92f
test for pure fn vs impure fn etc subtyping
2012-05-30 11:56:50 -07:00
Niko Matsakis
6dc4bc517a
test for troublesome case where preserve was freeing uninitialized memory
2012-05-30 11:26:15 -07:00
Niko Matsakis
79b3dedac3
allow for loop bodies
2012-05-30 11:26:15 -07:00
Niko Matsakis
653a1f8781
integrate purity into type
2012-05-30 11:26:15 -07:00
Niko Matsakis
22a10f0e4a
refactor region manip. to remove redundancy, get closer to fn subtyping
...
also: remove "auto-mode-matching" for implemented interfaces, as it
is complex and interacts poorly with classes
cc #2263
2012-05-30 11:04:12 -07:00
Niko Matsakis
e4694ca519
add a test that types w/ def_ids compare just fine to types w/o def_ids
...
this is not clearly going to work due to monomorphization, which convverts
each enum<T> to a distinct "type" from POV of the shape code
2012-05-30 11:04:12 -07:00
Michael Sullivan
b744f52620
Make heap closures always require a capture clause to capture mutable variables. Closes #2446 .
2012-05-30 10:46:22 -07:00
Tim Chevalier
3f3c9caf4d
Handle poststates of breaking loops correctly in typestate
...
The poststate should be one where all predicates are assumed false,
rather than the unchanged prestate.
Closes #2374
2012-05-29 18:22:38 -07:00
Tim Chevalier
b30daa6eef
Test case for issue 2380
2012-05-29 17:05:17 -07:00
Tim Chevalier
8d7765be82
Resolve bounds in iface types
...
Closes #2311
2012-05-29 16:50:21 -07:00
Niko Matsakis
f90228b8a8
make all arguments modes immutable
...
note: you can still move from copy/move mode args
2012-05-29 16:22:17 -07:00
Niko Matsakis
37b78b48e3
modify shape code to only emit monomorphized enums ( #2444 )
...
this is hacky, but shape code is going away anyway and I didn't
want to invest too much effort into it
2012-05-29 15:12:36 -07:00
Tim Chevalier
ccc7651b48
In reachability, don't ignore nested items
...
Reachability was considering nested items to be unreachable, which
was causing the bug in #2383 . Once I fixed that, I also had to make
impl::make_impl_vtable instantiate methods where necessary, before
calling monomorphic_fn.
Closes #2383
2012-05-29 14:40:35 -07:00
Michael Sullivan
5d1c29912d
Fix an error message to not refer to "block type". Closes #2423 .
2012-05-29 12:18:59 -07:00
Eric Holk
5e35d49a50
Moving the arc tests into arc.rs.
2012-05-29 11:30:10 -07:00
Eric Holk
aa2efc05ea
Adding shared_arc to hide some of the tedium of sharing an arc between tasks.
...
Also added some asserts and logging to trans.
Modified graph500 to use the shared_arc, but this unfortunately doesn't work due to #2444 .
2012-05-29 10:43:19 -07:00
Graydon Hoare
163b0604dc
Re-xfail reflect-visit-type since it crashes check-fast.
2012-05-28 17:03:44 -07:00
Graydon Hoare
e0f0c5c1ab
Remove bad Load in make_visit_glue, un-xfail reflect-visit-type.rs.
2012-05-28 13:19:31 -07:00
Brian Anderson
18f4bfd576
bench: Remove task-perf-vector-party. No longer relevant
2012-05-26 16:00:38 -07:00
Brian Anderson
45d0fbf6a1
bench: Increase the difficulty of some benchmarks
2012-05-26 16:00:35 -07:00
Brian Anderson
432c6cbde9
core: Make range follow the for loop protocol
2012-05-26 02:28:00 -07:00
Eric Holk
df83a793d9
In generic word count, use str instead of [u8], and use built in is_alphabetic, etc. functions.
2012-05-25 18:32:18 -07:00
Eric Holk
0c3a128419
Update word-count-generic to latest syntax and un-xfail it. Closes #1740 .
2012-05-25 18:32:18 -07:00
Niko Matsakis
98740a59da
detect ambig. calls to iface bounds, use transactions
...
cc #2433
2012-05-25 17:04:05 -07:00
Michael Sullivan
8668d06400
Get rid of many implicit copies as a preliminary to Issue #2448 .
2012-05-25 16:39:35 -07:00
Niko Matsakis
266fdd032b
test for issue #2443
2012-05-25 14:37:35 -07:00
Niko Matsakis
9e6a068034
replace last_use with liveness info
2012-05-25 14:37:30 -07:00
Niko Matsakis
62fe587f81
revisit error message; create spill map
2012-05-25 14:37:30 -07:00
Eric Holk
8b6bfc96cb
Const kind checking. The rules are almost certainly incomplete and unsound...
2012-05-24 15:06:56 -07:00
Eric Holk
d993df74c3
Teach parser and related things to understand const kind bounds.
2012-05-24 15:06:56 -07:00
Niko Matsakis
ccd8d5573e
remove dead assignments
2012-05-24 13:35:57 -07:00
Niko Matsakis
f5c51b0a9c
remove initedness checking from typestate, as best I could
2012-05-24 09:52:16 -07:00
Niko Matsakis
0d3811e275
improve liveness so it reports unused vars / dead assignments
...
doesn't warn about pattern bindings yet though
2012-05-24 09:52:16 -07:00
Niko Matsakis
30b47649ea
new liveness pass to supercede last_use / initedness
2012-05-24 09:52:03 -07:00
Niko Matsakis
a3be0b1054
fix classes and parameterized ifaces; remove needless self check
...
ref #1726 , #2434
2012-05-24 06:49:40 -07:00
Niko Matsakis
bd573becf5
change region scope of call arguments, old one was unsound
...
improve error message to describe kind of deref'd ptr using sigil
2012-05-24 05:19:44 -07:00
Brian Anderson
4fec4cd8f5
bench: Add hard mode to benchmarks. Activate with RUST_BENCH.
...
RUST_BENCH is on automatically when running `make perf`
2012-05-23 22:55:41 -07:00
Brian Anderson
2f3cff2806
bench: Remove 99bob benchmarks
2012-05-23 20:29:46 -07:00
Eric Holk
5f154770e2
Prevent capturing non-copyable things in closures.
2012-05-23 15:46:43 -07:00
Eric Holk
6fa1a084f7
A shareable atomically reference counted pointer wrapper.
...
Needs more tests to ensure safety, and probably some more work on usability too.
2012-05-23 14:58:16 -07:00
Niko Matsakis
9773a22119
shuffle error messages in borrowck, and prevent it from spewing too many
...
also, fix a few minor issues it complains about
2012-05-23 12:01:27 -07:00
Brian Anderson
248f8826a9
bench: Reduce constants in std-smallintmap to make it valgrind fast
2012-05-23 11:24:02 -07:00
Eric Holk
8678baab12
Resources are once again not copyable.
2012-05-23 10:27:42 -07:00
Niko Matsakis
b93839408c
new test
2012-05-23 06:30:29 -07:00
Niko Matsakis
e0f59e835e
modify borrowck to allow arbitrary borrows in pure scopes
2012-05-23 06:30:29 -07:00
Brian Anderson
27427a950a
Merge pull request #2430 from mmeyerho/master
...
Added support for #! comments. Closes issue 1772.
2012-05-22 20:39:53 -07:00
Tim Chevalier
ed357af980
Convert more resource tests to use classes with dtors
...
And monomorphize dtors correctly.
2012-05-22 22:12:18 -04:00
Margaret Meyerhofer
4f10c19215
Merge branch 'master' of git://github.com/mozilla/rust
2012-05-22 18:23:32 -07:00
Brian Anderson
8caf1403be
bench: Reduce some constants to make graph500-bfs faster
2012-05-22 18:20:23 -07:00
Margaret Meyerhofer
6077647878
Added a test for #! comments
2012-05-22 18:03:26 -07:00
Brian Anderson
a32392d032
Merge pull request #2427 from msullivan/shifts
...
Get rid of the >>> operator and make >> logical or arithmetic depending ...
2012-05-22 17:50:04 -07:00
Michael Sullivan
2a9bf0959b
Add a test for Issue #2428 .
2012-05-22 16:35:10 -07:00
Eric Holk
037a166ea7
Updating pbfs for new kind rules.
2012-05-22 15:51:11 -07:00
Eric Holk
b62d92c993
Removed accidental machine size dependencies.
2012-05-22 15:31:39 -07:00
Eric Holk
44bea03614
Updating bfs to work with the new random methods.
2012-05-22 15:31:39 -07:00
Eric Holk
5a4e2ae706
More unsafe pointers to share immutable structures between tasks. This version has a 2.8 to 3x speedup!
2012-05-22 15:31:39 -07:00
Eric Holk
7f05f088c7
Be less careful about checking that lengths make sense, for slightly more performance.
2012-05-22 15:31:39 -07:00
Eric Holk
77f6099606
Using unsafe pointers to views to try to reduce some vector copy and allocation time. Doesn't seem to have made much difference.
2012-05-22 15:31:39 -07:00
Eric Holk
ea889742d7
Using unsafe pointers to share closures.
...
This prevents the tons of copying problems we were having before, which means we only have a 5x slowdown now.
2012-05-22 15:31:39 -07:00
Eric Holk
65abe2c6dc
Using libstd future instead.
...
Turning off sequential versions for tracing.
2012-05-22 15:31:38 -07:00
Eric Holk
cba2761cc4
A new version of the sequential BFS. This uses the same approach as the parallel one, but without using the parallel vector oeprators.
2012-05-22 15:31:38 -07:00
Eric Holk
4312fa44b9
BFS now tries a number of search keys.
2012-05-22 15:31:38 -07:00
Eric Holk
a79f5174ea
A parallel BFS.
2012-05-22 15:31:38 -07:00
Eric Holk
a785f3fc95
Adding a module with parallel vector operations.
...
This should go in libstd, but currently resolve bugs make this not
work.
2012-05-22 15:31:38 -07:00
Eric Holk
d485f23a1a
Added most of the Graph500 validation routine. It's very slow.
2012-05-22 15:31:38 -07:00
Eric Holk
f5b9ebffa0
Starting on a BFS benchmark, but ran into problems with the deque module, so I used ports and channels as a queue in the simple sequential algorithm.
2012-05-22 15:31:38 -07:00
Michael Sullivan
15cef374b9
Get rid of the >>> operator and make >> logical or arithmetic depending on the signedness. Closes #2417 .
2012-05-22 14:59:15 -07:00
Eric Holk
0b2f2cabbe
Send is no longer a subkind of copy. This allows for sendable, but non-copyable resources. Closes #2420 .
2012-05-22 14:10:32 -07:00
Lindsey Kuper
248e439638
Region checking: this one currently passes, but only "by accident".
2012-05-21 13:05:06 -07:00
Lindsey Kuper
af418d97c0
Test illustrating issue #2263 .
2012-05-21 13:04:30 -07:00
Niko Matsakis
34b42eeb65
change list so that it must be used in a purely boxed fashion
...
The old way was inconsistent---the head was unboxed but the
tail was boxed. This resulted in numerous needless copies and
also made the borrow check unhappy, because the head tended to be
stored in mutable memory.
2012-05-21 09:37:34 -07:00
Niko Matsakis
8e73bb6ea0
detect and report shadows in nested bindings
2012-05-21 09:37:22 -07:00
Niko Matsakis
28d0ce9a8b
fix up handling of &x where x is an arg or &self (for now at least).
2012-05-19 10:33:14 -07:00
Niko Matsakis
b4be2c676f
create a smallintmap benchmark
2012-05-18 20:00:51 -07:00
Niko Matsakis
bfde2ba524
port smallintmap over to dvec
...
also: add a non-operator-overloaded method for [] to work around #2378
2012-05-18 20:00:51 -07:00
Niko Matsakis
cf6ad6d62a
move io over to dvec
2012-05-18 20:00:50 -07:00
Niko Matsakis
81caf926b4
test for #2378
2012-05-18 20:00:50 -07:00
Niko Matsakis
da204e1d73
add swappable/dvec modules
2012-05-18 20:00:50 -07:00
Niko Matsakis
19ec5a41ed
allow region ptrs to be cast to uints
2012-05-18 19:07:19 -07:00
Brian Anderson
e546c4820b
rustc: Don't copy vecs in seq_preconds. Huge perf win on some tests
...
Compile time for the included test goes from 5min to 18s.
2012-05-18 15:59:00 -07:00
Niko Matsakis
09b9447eb6
remove line so that pretty printer doesn't mess it up
2012-05-18 14:32:38 -07:00
Niko Matsakis
2f284cefa0
xfail-test failing test
2012-05-18 14:32:38 -07:00
Niko Matsakis
a559329692
test that we preserve boxes in patterns---still one bug
2012-05-18 14:32:37 -07:00
Brian Anderson
3f283bb168
rustc: Don't recurse in seq_preconds. Consumes too much stack
2012-05-18 14:28:39 -07:00
Niko Matsakis
afca68b820
test file I had lying around and had forgotten to commit
2012-05-18 10:38:18 -07:00
Paul Stansifer
0eef34bacb
add #include_bin[]
2012-05-18 10:05:25 -07:00
Paul Stansifer
ac2faad26e
Fold #include_str into the other source_utils.rs syntax extensions.
2012-05-18 10:05:25 -07:00
Paul Stansifer
07e775404f
add #mod[], which expands to the current module path
2012-05-18 10:05:25 -07:00
Paul Stansifer
88f4d06941
New syntax extensions: #line[], #col[], #file[], #stringify[], #include[]
2012-05-18 10:05:24 -07:00
Paul Stansifer
9fe547d3a7
Make extracting syntax extension arguments easier.
2012-05-18 10:05:24 -07:00
Tim Chevalier
0343b0553b
Test that a class type name gets printed correctly in a...
...
"cannot be dereferenced" error message. Closes #2370
2012-05-17 09:40:43 -07:00
Graydon Hoare
9752523f3a
Include intrinsic module in all crates, emit visit glue, fn intrinsic::visit_ty. Not yet working.
2012-05-16 18:24:00 -07:00
Niko Matsakis
21fc3af031
add xfail-fast directives for borrowck tests
2012-05-16 12:44:54 -07:00
Niko Matsakis
63210ecddb
correct preservation of explicit borrows like "let x = &*y;"
2012-05-16 07:19:19 -07:00
Niko Matsakis
4bfa19b100
rename test
2012-05-15 21:20:52 -07:00
Niko Matsakis
9c7b74b025
check if the type of a local variable contains illegal region
...
also, try to suppress some of the duplicate errors---in general
more work is needed to make these error messages comprehensible
to ordinary humans
2012-05-15 21:20:37 -07:00
Tim Chevalier
7df7a9d8ac
Start porting tests to use classes with dtors instead of resources
2012-05-15 20:35:57 -07:00
Niko Matsakis
ab735320b4
move regionck into typeck, in the process fixing a bug or two
2012-05-15 19:05:03 -07:00
Tim Chevalier
fa5cc5bcd0
Generate drop glue correctly for classes with destructors
2012-05-15 18:00:41 -07:00
Niko Matsakis
adb61e3e99
get preservation of boxes working, at least in simple cases
2012-05-15 13:38:16 -07:00
Niko Matsakis
efa2252cfc
add a test that current fails b/c we do not preserve boxes
2012-05-15 11:49:09 -07:00
Lindsey Kuper
b8880e3254
Remove be
keyword.
...
Closes #2227 .
2012-05-15 10:41:14 -07:00
Graydon Hoare
d899c3a579
More work on reflection, now calls iface visitors back as well.
2012-05-14 15:49:10 -07:00
Tim Chevalier
5428a22b95
First cut at dtors for classes
...
Classes with dtors should compile now. Haven't yet tested
whether they actually run correctly.
Beginnings of support for #2295 , though that won't be done until
there's more test cases and resources are removed.
2012-05-14 14:26:10 -07:00
Tim Chevalier
89cd2f6bd0
Enforce that self doesn't escape from a class
...
Closes #2294
2012-05-14 14:26:10 -07:00
Niko Matsakis
a6b9fa0cd1
new test for loaning out an index
2012-05-11 18:27:17 -07:00
Niko Matsakis
63eb8e0e87
move purity checking into borrowck, addresses #1422
2012-05-11 14:05:58 -07:00
Graydon Hoare
2585384c97
First working monomorphic type-reflection.
2012-05-11 13:10:07 -07:00
Niko Matsakis
5dbf881e87
three new tests for assigning to various unassignable things
2012-05-11 06:41:58 -07:00
Niko Matsakis
b4d1f1b2c1
replace mutbl pass with borrowck
2012-05-10 21:14:43 -07:00
Paul Stansifer
f943667af3
Remove do ... while
loops from the tests and docs.
2012-05-10 15:27:42 -07:00
Niko Matsakis
50a3dd40ae
implement new borrow ck (disabled by default)
2012-05-09 17:00:19 -07:00
Niko Matsakis
5e7229b72c
reduce self type to a special type parameter
2012-05-09 07:11:59 -07:00
Marijn Haverbeke
96a159a6ea
Support visibility modifiers and attributes on view items
...
Issue #1893
Tangentially, issue #2357
2012-05-08 23:14:24 +02:00
Tim Chevalier
1e6da7b38d
Add another test case for #2288
...
Added a test case for #2288 . It's xfailed for now, pending #2364
2012-05-07 14:43:31 -07:00
Tim Chevalier
1460ea43d2
Add xfailed test case for #2354
2012-05-07 14:43:31 -07:00
Tim Chevalier
4f105e4025
In resolve, visit the path in an iface ref
...
Necessary to resolve any type arguments in a ref to a parameterized
iface. This meant that, for example:
class A implements B<int> { ...
didn't work before, because the "int" in B's argument wasn't getting
visited, and thus wasn't getting resolved. Now it works.
Partially addresses Issue #2288 , but I also want to check that class
ty params can appear as the type arguments to ifaces (for example,
class A<T> implements B<T> {...
should work.)
2012-05-07 14:43:31 -07:00
Niko Matsakis
8a9df5aa38
make it illegal to implicitly capture mutable variables
...
this is the final part of #1273
2012-05-07 13:22:42 -07:00
Tim Chevalier
95a2b5d42f
Add test case that checks that class members must be prefixed with "self"
...
Closes #2289 .
2012-05-04 13:44:01 -07:00
Niko Matsakis
50ec6bd2c3
new cap clause syntax
2012-05-04 12:33:08 -07:00
Niko Matsakis
cfa09d35a3
Revert "allow fn exprs to omit arg types"
...
This reverts commit 1ba4ca4c4a
.
2012-05-03 14:42:34 -07:00
Niko Matsakis
1ba4ca4c4a
allow fn exprs to omit arg types
...
also, avoid using type variables for fn args with omitted types
unless necessary. This will be important for bound regions in
fn types.
fixes #2093
2012-05-03 14:32:32 -07:00
Graydon Hoare
6e5c8a7fb8
More shape fixes for evecs.
2012-05-03 14:11:54 -07:00
Graydon Hoare
11a5d10bf2
Implement better shape code for evec, estr.
2012-05-03 13:09:02 -07:00
Tim Chevalier
d8f28be753
Check early on in typeck that types being implemented are actually iface types
...
Closes #2330 .
2012-05-03 12:38:45 -07:00
Marijn Haverbeke
d0d71838cd
Mention missing constructor when complaining about inexhaustive top-level pattern
...
It previously, uselessly, only pointed out the constructor when the
inexhaustive pattern was nested in some other pattern.
Closes #2337
2012-05-03 17:35:12 +02:00
Niko Matsakis
f1129635ee
report ambig impl methods
2012-05-02 21:47:14 -07:00
Niko Matsakis
f4cc5ff226
remove extra type parameter from ptr::is_null() and friends
2012-05-02 21:47:14 -07:00
Brian Anderson
358dc59538
test: xfail-win32 run-pass/native-struct
2012-05-02 19:07:35 -07:00
Brian Anderson
11354963b3
rustc: Hack around some FFI bustage. Unbreak servo
2012-05-02 18:35:29 -07:00
Brian Anderson
1e410f6206
rt: Fix some record alignment issues on windows
2012-05-02 18:32:20 -07:00
Brian Anderson
e2910bf264
Revert "rt: Fix some record alignment issues on windows"
...
This reverts commit a2457f5864
.
2012-05-02 18:25:22 -07:00
Brian Anderson
a2457f5864
rt: Fix some record alignment issues on windows
2012-05-02 17:55:58 -07:00
Tim Chevalier
0247d85575
xfail-fast class-separate-impl
2012-05-02 15:10:54 -07:00
Graydon Hoare
b12e27595e
Error message reformatting, close #2309 .
2012-05-02 14:47:33 -07:00
Tim Chevalier
c2382f9ebf
Add test for issue 2287
...
Test that it's possible to write "impl of B for A" outside a class,
where A is a class type. This didn't require any extra work, but it's
still good to have a regression test.
Closes #2287
2012-05-02 14:45:21 -07:00
Tim Chevalier
e0da0dd446
Test for issue 2286
...
which is really kind of a non-issue because class methods aren't
items that can be selectively imported/exported anyhow, unlike enum
variants. But, might as well have a test.
2012-05-02 14:02:44 -07:00
Tim Chevalier
3d4ef74c9b
Encode the ifaces a class implements in metadata
...
This lets you use class A as if it had type B if A implements B,
and A and B are in different crates from your own.
Closes #2285
2012-05-02 13:38:56 -07:00
Tim Chevalier
164039e867
Don't re-export a glob-imported ID when the same ID is defined within
...
a module
See the test case I added (issue-2316-c) for a concrete example.
issue-2316 also contains the originally reported test case. resolve
was using bitwise or instead of logical or when checking exports,
resulting in excessively eager evaluation. A one-line fix that took
six hours to isolate ;-)
2012-05-01 08:43:17 -07:00
Niko Matsakis
2db4259b35
Stop inferring bot/static when types/regions are unconstrained.
...
Also, some other changes that came up along the way:
- add a 'blk' region for the current block.
- detect unused type/region variables.
2012-04-30 19:53:02 -07:00
Niko Matsakis
e348567f77
new, simpler approach to the iter library
2012-04-27 16:57:50 -07:00
Brian Anderson
5eca3c2210
parser: More refactoring of restricted value name checking
2012-04-27 16:45:54 -07:00
Brian Anderson
48368c5a07
test: Add test for two restricted keyword cases
2012-04-27 16:45:54 -07:00
Brian Anderson
09624a676a
test: Enable an assert in run-pass/rec-align-32-bit.rs
2012-04-27 00:12:42 -07:00
Brian Anderson
e4277472d2
core: Split sys::align_of into min_align_of, pref_align_of
2012-04-27 00:12:42 -07:00
Brian Anderson
f4f909b8b5
rustc: Add min_align_of, pref_align_of intrinsic, deprecate align_of
2012-04-27 00:12:39 -07:00
Brian Anderson
597d9b4dd0
test: xfail-win32 run-pass/rec-align-32-bit.rs
2012-04-26 19:55:57 -07:00
Brian Anderson
bbc4a74dc6
rt: Fix shape alignment of 64-bit ints on x86. Issue #2303
2012-04-26 18:30:58 -07:00
Graydon Hoare
1f92538e38
Add check for path-statements, close #400 .
2012-04-26 14:43:43 -07:00
Graydon Hoare
33a296f2fc
Lowercase warning message.
2012-04-26 14:43:43 -07:00
Niko Matsakis
825fd1808e
lots of work to make iface/impls parameterized by regions
...
- paths can now take region parameters, replacing the dirty hack
I was doing before of abusing vstores. vstores are now a bit
of a hack though.
- fix various small bugs:
- we never checked that iface types were compatible when casting
to an iface with `as`
- we allowed nonsense like int<int>
- and more! (actually that may be it)
2012-04-25 19:26:56 -07:00
Graydon Hoare
753b683939
More slice use in vec, io, str, ebml, metadata encoder and decoder.
2012-04-25 17:19:36 -07:00
Brian Anderson
e21161b336
test: Fix run-pass/enum-mach-type-compat on x86
2012-04-25 16:06:57 -07:00
Brian Anderson
60ec812b3a
test: Fix and un-xfail run-pass/use
2012-04-25 15:58:33 -07:00
Brian Anderson
c9439ad755
test: Remove run-pass/user.rs. Old test for unimplemented feature
2012-04-25 15:56:21 -07:00
Brian Anderson
df0ef528b9
rustc: Use LLVM named structs for enum types
2012-04-25 15:49:25 -07:00
Marijn Haverbeke
10120cce0f
typeck: Take more care to pass down expected types
...
This helps with prototype inference and avoids some 'must be known
in this context' errors.
2012-04-25 17:45:29 +02:00
Marijn Haverbeke
9f99c3263b
Rewrite exhaustiveness checker
...
Issue #2111
2012-04-25 09:15:17 +02:00
Brian Anderson
08d0707556
syntax: Make 'true' and 'false' bad words
...
When these are idents they are always shadowed by the boolean
constants.
2012-04-24 22:00:32 -07:00
Graydon Hoare
929c3dd710
Workarounds for bug #2280 : add some temporaries for borrowing.
2012-04-24 15:19:01 -07:00
Brian Anderson
e7dbf42214
rustc: Fix type_need_unwind_cleanup. Closes #2272
2012-04-24 14:55:16 -07:00
Brian Anderson
31853f31bf
build: Don't require full target libs to run compiletest tests
...
Only build through librustsyntax, which some tests do rely on.
2012-04-24 13:30:03 -07:00
Tim Chevalier
2d793ef498
Add a cross-crate test for casting classes to ifaces
2012-04-24 10:47:53 -07:00
Tim Chevalier
f7641286b2
Allow classes to be cast to ifaces that are in the same crate
...
I had to xfail one existing test case (class-implements-int) because,
I think, of the same bug described in #2272 .
2012-04-23 21:15:03 -07:00
Niko Matsakis
b04b415e0d
encode the borrowing table, add a simple cross-crate borrowing test
2012-04-23 16:41:11 -07:00
Niko Matsakis
30d563839e
Various regions fixes.
2012-04-23 08:02:59 -07:00
Marijn Haverbeke
68f8812511
Guard against infinitely expanding generic/inline functions
...
Closes #2220
Test case disabled until a memory-leak issue is resolved.
2012-04-23 16:44:52 +02:00
Marijn Haverbeke
2782cfb783
Emit a more useful error when using an unsuitable function for a loop
...
Closes #2255
2012-04-23 15:43:29 +02:00
Marijn Haverbeke
9053f54498
Move map iface over to more for
-friendly iteration methods
2012-04-23 15:18:19 +02:00
Marijn Haverbeke
f2a60a6b02
Fix long line in test
2012-04-23 09:54:27 +02:00
Marijn Haverbeke
dfdca5d538
Fix broken determination of external method type param count
...
Closes #2185
2012-04-23 09:25:14 +02:00
Brian Anderson
7235f3cee2
syntax: Eliminate 'mutable' keyword. Closes #2254
2012-04-21 14:27:20 -07:00
Tim Chevalier
734166f41c
Print out return type correctly in typestate error message
...
In the "not all paths return" error message, typestate was printing
the AST type from the fn decl, not the ty::t type. This ended in tears
when the AST return type was "ty_infer". Now it looks up the function node
ID's type and uses util::ppaux::ty_to_str instead.
Closes #2163 .
2012-04-20 18:48:08 -07:00
Graydon Hoare
90f82e171d
Get borrowing working on fixed evecs.
2012-04-20 12:11:55 -07:00
Tim Chevalier
37b0549730
Add new syntax for patterns that match the head constructor only
...
Adds a new kind of pattern C(*) where C is a constructor that may
have any number of fields. This pattern matches any value
constructed with C, without binding names for any of the fields.
Closes #1701 .
2012-04-20 00:56:46 -07:00
Niko Matsakis
3d6c79109e
update syntax to include a slash
2012-04-19 21:01:11 -07:00
Niko Matsakis
3c995fb8f3
make nominal types optionally parameterized by a self region.
...
Issue #2201 .
2012-04-19 21:01:11 -07:00
Niko Matsakis
f3f34bf09b
correct universally_quantify to use structure_of, and introduce a test for this
2012-04-19 21:01:11 -07:00
Niko Matsakis
bbfb83c2c5
Test for issue #1899 . It works now.
2012-04-19 20:54:23 -07:00
Niko Matsakis
171c89f4c5
Fix for #1989 , #1469 : when marking in CC, walk fn@ box like other boxes
2012-04-19 20:34:26 -07:00
Tim Chevalier
cdc8722f95
Add a lint pass to check for while true { ... } loops
...
And suggest changing them to loop { ... }. Had to fix the few
remaining while true loops (in core::io). Closes #1962 .
2012-04-19 18:14:38 -07:00
Graydon Hoare
f641dce852
Get evec slices and unique-evec slice-borrowing working.
2012-04-19 16:51:37 -07:00
Tim Chevalier
b0074c5a92
Disallow rebinding / matching against consts in alts
...
As per Issue #1193 . Closes #1193 .
I had to rename a few variables ("info" and "epsilon") to avoid
clashing with in-scope constants, which is responsible for all the
changes other than resolve and issue-1193.rs.
2012-04-19 16:21:15 -07:00
Graydon Hoare
1e51196f33
Get fixed-size evecs working.
2012-04-19 15:52:50 -07:00
Brian Anderson
7a1dc76b0f
core: Move set_exit_status from sys to os
2012-04-19 01:26:17 -07:00
Graydon Hoare
956bc773c6
Fix [] on str to exclude the trailing null.
2012-04-18 17:50:58 -07:00
Brian Anderson
9a8a04629e
syntax: Put the main parser interface in mod parse
2012-04-18 10:50:50 -07:00
Graydon Hoare
70a9ce626d
Implement slice-borrowing on estr-uniq and str values.
2012-04-17 15:15:20 -07:00
Niko Matsakis
4c26d70a0a
new debug flag, new test
2012-04-17 12:02:36 -07:00
Niko Matsakis
6b549f9f14
repair LUB/GLB of free/scope regions, and enable test
2012-04-17 12:02:36 -07:00
Niko Matsakis
35a93e61d4
rewrite region resolution so it takes place in typeck
2012-04-16 19:48:00 -07:00
Graydon Hoare
82727b926f
Get explicit unique estrs working.
2012-04-16 16:17:51 -07:00
Brian Anderson
c461fc869c
test: Add xfailed test for #2196
2012-04-16 13:51:40 -07:00
Brian Anderson
f466a2fa8f
rustc: -L also indicates the location of native libraries
...
-L currently specifies paths to search for Rust crates
Building crates that use native libraries is difficult. When the
library is located somewhere unexpected there is no way
to tell rustc additional paths to look in.
If libclang is located at `.` then rustc is not going to
know that and linking will fail.
To get around that I often end up inserting
#[link_args = "-L."] native mod m { }
into other crates to get them to build.
Now you just `rustc -L .` and it builds.
This doesn't do any rpathing so it's still up to somebody else
to put the library somewhere it will be found or use LD_LIBRARY_PATH
This feature comes with a single, XFAILed test, because I could
not think of a way to test it. Odd.
2012-04-16 12:33:21 -07:00
Tim Chevalier
4f4a468e84
Forbid deinitializing upvars in typestate
...
Closes #1965 .
2012-04-15 01:05:41 -07:00
Niko Matsakis
cc16165e40
implement evec/estr subtyping/lub/glb/etc
2012-04-14 18:48:58 -07:00
Brian Anderson
658b6a741b
test: Simulate abstract methods with template modules
2012-04-14 02:14:05 -07:00
Brian Anderson
611061b6c3
test: Add a test for interesting module template polymorphism
2012-04-14 00:15:12 -07:00
Niko Matsakis
247db704a9
integrate simple notion of borrowing into trans
2012-04-13 21:06:57 -07:00
Niko Matsakis
4d73185f3e
new borrowing tests (not all passing)
2012-04-13 21:06:56 -07:00
Niko Matsakis
f099359cfa
add test for issue #1466 that runs with CC ZEAL enabled.
...
Fixes #1466 . (Unable to reproduce)
2012-04-13 12:41:37 -07:00
Niko Matsakis
dfc548ddda
add option exec-env to set env variables during test execution
2012-04-13 12:41:37 -07:00
Niko Matsakis
27f1c2b742
first stab at type checking for borrow: not integrated into trans
2012-04-13 10:41:46 -07:00
Tim Chevalier
ea0063788b
Add a run-fail test for result::get, get rid of a FIXME. Also some random other tests, mostly xfailed.
2012-04-12 20:24:07 -07:00
Brian Anderson
8c8db42fc5
test: Add test for #1763
2012-04-12 17:43:12 -07:00
Graydon Hoare
8a7fd4a04f
Support general warnings and errors in lint pass via flags and attrs. Close #1543 .
2012-04-12 17:31:49 -07:00
Brian Anderson
db7a1f7b0c
test: Add compile-fail test for shadowing in-scope enums
2012-04-11 21:28:25 -07:00
Tim Chevalier
d7ba59eb6e
Test that a class can implement an interface defined in a different crate
2012-04-11 18:55:30 -07:00
Niko Matsakis
3e6943d820
refactor fixup_self
2012-04-11 17:21:53 -07:00
Niko Matsakis
c1c60c023e
first attempt at an assignability check
2012-04-11 17:21:53 -07:00
Tim Chevalier
5c12cd72f4
Allow classes to implement ifaces
...
Introduce syntax like:
iface animal { ... }
class cat implements animal { ... }
to allow classes to implement ifaces. Casting classes to ifaces
is *not* yet supported. ifaces that a class implements are not
yet included in metadata.
The syntax is subject to change, and may go away completely if we
decide to use duck typing to relate classes with ifaces (see
http://smallcultfollowing.com/babysteps/blog/2012/04/10/declared-vs-duckish-typing/ )
2012-04-11 16:20:01 -07:00
Graydon Hoare
f34eae8802
Translate slice-strings and make fixed-strings carry their null.
2012-04-11 12:07:19 -07:00
Graydon Hoare
7a3b290245
Add vstore/evec/estr to compiler.
2012-04-11 11:08:40 -07:00
Graydon Hoare
0c94cd5d43
Add some xfailed estr tests.
2012-04-11 11:08:40 -07:00
Tim Chevalier
fd26743bed
Generic classes and generic class methods work cross-crate
...
Classes can have ty params now. So can methods inside classes.
That was probably true before, but now it should still work if you
call methods in a class that's defined in a different crate. Yay!
2012-04-10 11:01:36 -07:00