1633 Commits

Author SHA1 Message Date
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
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
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
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
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
Haitao Li
1dac883282 test: Remove duplicated auxliary tests 2012-04-10 16:59:35 +08:00
Niko Matsakis
24e921f7d4 make anything used in a resource body always reachable
(they appear to be uncond. inlined)

Fixes #2170.
2012-04-09 16:36:59 -07:00
Haitao Li
2ce28899e4 test: Don't share auxiliary modules 2012-04-09 00:18:18 +08:00
Haitao Li
cc66599c1f Xfail-fast a case on window 2012-04-08 23:14:57 +08:00
Haitao Li
101f83ecef Fix a missing un-xfailed case
Issue #1230
2012-04-08 22:09:15 +08:00
Haitao Li
7d227f21f7 Check metadata hash when loading transitive dependent crates
Fix issue #2138
2012-04-08 21:19:15 +08:00
Brian Anderson
a6e748a1d9 rustc: Hash the CMH into symbol names 2012-04-07 17:50:49 -07:00
Brian Anderson
e0f2341da1 test: Add another test using multiple versions of the same crate 2012-04-07 17:40:25 -07:00
Brian Anderson
320e6cebf4 test: Un-xfail run-pass/crateresolve2 2012-04-07 17:39:59 -07:00
Brian Anderson
19b7a7d803 Revert "Mangle exported names using node IDs rather than types"
This reverts commit c83d61de936f2910001fe72de01ac58479d90524.
2012-04-07 17:29:06 -07:00
Niko Matsakis
1e42c9a367 Do not consider ty_bot to be a "resolved type".
Fixes #2149. Fixes #2150. Fixes #2151.
2012-04-07 17:12:48 -07:00
Haitao Li
7aaa120bcc Check version when resolving transitive dependent crates
Issue #2138
2012-04-08 02:05:09 +08:00
Haitao Li
2f42b14b4f Use version and hash in crate_map name
Related issue #2137
2012-04-07 22:11:23 +08:00