Commit Graph

1614 Commits

Author SHA1 Message Date
Niko Matsakis
3b4cfdeee2 Merge remote-tracking branch 'mozilla/incoming'
Conflicts:
	src/rustc/middle/tstate/auxiliary.rs
2012-06-06 19:00:34 -07:00
Niko Matsakis
8ebbf464f5 minor changes to tests so they pass borrowck 2012-06-06 18:37:58 -07:00
Brian Anderson
ef32ffd0b1 core: Remove swappable. Unused 2012-06-06 17:48:45 -07:00
Tim Chevalier
db31969d4a prefix an _ to the name of an unused variable 2012-06-06 17:19:39 -07:00
Tim Chevalier
feece9814a Revert "Revert "Fix test case so the class in it is non-empty" due to test failures"
This reverts commit c6e16c5668.
2012-06-06 15:08:24 -07:00
Patrick Walton
d53e633bd5 Revert "test: Remove swappable-test" due to test failures
This reverts commit aabf84cdd8.
2012-06-06 11:39:52 -07:00
Patrick Walton
055158d051 Revert "Merge pull request #2516 from mozilla/incoming" due to failures
This reverts commit adb717b5fa, reversing
changes made to aabf84cdd8.
2012-06-06 11:39:19 -07:00
Tim Chevalier
17e707cf6d Fix test case so the class in it is non-empty 2012-06-05 21:13:25 -07:00
Brian Anderson
aabf84cdd8 test: Remove swappable-test 2012-06-05 14:59:43 -07:00
Brian Anderson
d3c641678e rustc: Put uniques into addrspace 1 2012-06-05 14:03:25 -07:00
Eric Holk
1e8f501343 Machine types are different from int/uint, etc (Issue #2187) 2012-06-04 19:16:47 -07:00
Patrick Walton
a542258277 Add a test case for previous commit 2012-06-04 18:56:50 -07:00
Niko Matsakis
3c4baf694e better support for classes with polymorphic methods 2012-06-04 11:46:23 -07:00
Niko Matsakis
01b5777c8b prohibit type parameters in native fns and other minor fixes
trans now can safely assert that it never sees a type param
2012-06-03 20:03:08 -07:00
Brian Anderson
3ab738f4af Add more #fmt float tests 2012-06-02 16:45:20 -07:00
Kevin Cantu
a7359f5b3b (float) fix some rounding errors when showing as str
This seems to fix issue #1876, and some of the superficial parts of
issue #1375.  The #fmt macro and the to_str functions will round,
rather than truncate, floats as strings.

Other issues remain, and I wrote more code here than intended, but the
following should pass now.

```
fn x() {
   assert "3.1416"      == #fmt["%.4f", 3.14159];
   assert "3"           == #fmt["%.0f", 3.14159];
   assert "99"          == #fmt["%.0f", 98.5];
   assert "7.0000"      == #fmt["%.4f", 6.999999999];
   assert "3.141590000" == #fmt["%.9f", 3.14159];
}
```
2012-06-02 16:38:18 -07:00
Niko Matsakis
77c470d183 Allow rcvrs to be borrowed; check rcvrs in borrowck properly 2012-06-02 10:08:04 -07:00
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
de40318037 Tests for copyability and sendability rules for classes
Closes #2296
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
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
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
Michael Sullivan
1eebb1fe87 Add a test for the just closed issue #2426. 2012-05-30 16:02:48 -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
Niko Matsakis
6dc4bc517a test for troublesome case where preserve was freeing uninitialized memory 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
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
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
Eric Holk
5e35d49a50 Moving the arc tests into arc.rs. 2012-05-29 11:30:10 -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
432c6cbde9 core: Make range follow the for loop protocol 2012-05-26 02:28:00 -07:00
Niko Matsakis
266fdd032b test for issue #2443 2012-05-25 14:37:35 -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
f5c51b0a9c remove initedness checking from typestate, as best I could 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
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
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
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
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
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
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
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
Tim Chevalier
7df7a9d8ac Start porting tests to use classes with dtors instead of resources 2012-05-15 20:35:57 -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
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
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
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
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
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
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
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
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
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
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
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
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
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
Graydon Hoare
f641dce852 Get evec slices and unique-evec slice-borrowing working. 2012-04-19 16:51:37 -07:00
Graydon Hoare
1e51196f33 Get fixed-size evecs working. 2012-04-19 15:52:50 -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
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