Lindsey Kuper
b8880e3254
Remove be
keyword.
...
Closes #2227 .
2012-05-15 10:41:14 -07:00
Brian Anderson
452fc46ffc
rustc: Break some of metadata's dependencies on session
2012-05-14 20:41:33 -07:00
Brian Anderson
0f49928c2d
rustc: Break metadata's dependency on link
2012-05-14 19:04:32 -07:00
Brian Anderson
f08fe56479
rustc: Break more metadata dependencies
2012-05-14 19:04:32 -07:00
Brian Anderson
fce6a474b1
rustc: Eliminate metadata's dependency on astencode
2012-05-14 19:04:32 -07:00
Brian Anderson
5c864e9de0
rustc: Eliminate encoder's dependency on astencode
2012-05-14 19:04:32 -07:00
Brian Anderson
32c4b6da5b
rustc: Move astencode from metadata to middle
2012-05-14 19:04:31 -07:00
Graydon Hoare
e12b16cde7
Instantiate per-type iface-based visit_glue when intrinsic ifaces present.
2012-05-14 17:57:48 -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
Brian Anderson
11e9947ff5
rustc: Eliminate a simple dependency from metadata mod
2012-05-13 17:49:27 -07:00
Brian Anderson
1f52652a06
rustc: Eliminate some indirection to the syntax crate
2012-05-13 17:33:29 -07:00
Brian Anderson
a2572fe77e
rustc: Eliminate metadata's dependency on trans
2012-05-13 17:08:35 -07:00
Brian Anderson
ecf290d448
rustc: Be explicit about which peer modules the metadata mod can access
...
This is the first step in eliminating dependencies on rustc so we can extract
the metadata code into its own crate.
2012-05-13 15:58: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
Graydon Hoare
c23d6a50d7
Preliminary groundwork for intrinsic module, reflection interface.
2012-05-10 17:18:04 -07:00
Paul Stansifer
13c924c049
Remove do { ... } while ...
from the language.
2012-05-10 15:09:33 -07:00
Paul Stansifer
5af58e7926
Removed all 4 uses of do ... while
in the codebase.
2012-05-10 14:21:04 -07:00
Brian Anderson
fa6c18e014
rustc: Refactor driver to better understand string sources
2012-05-09 23:40:50 -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
Brian Anderson
d41af13334
rustc: Extract session::basic_options from rustdoc
2012-05-08 22:33:45 -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
Marijn Haverbeke
b619954457
Start parsing pub/priv on regular items
...
Issue #1893
2012-05-08 16:09:40 +02:00
Brian Anderson
b99038c2bf
rustc: Put all boxes into addrspace 1
2012-05-07 15:24:32 -07:00
Tim Chevalier
0e43e8ccc8
That awkward moment when you forget to add your final changes
...
Fixes build breakage.
2012-05-07 15:15:13 -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
Tim Chevalier
8affc78e8a
Turn constants in back::abi into uints, and propagate types
...
This means GEPi now takes a list of uints. Apologies in advance
if this is hard to rebase against, but it gets rid of many a cast :-)
Also modernized some for loops here and there.
2012-05-03 22:31:38 -07:00
Niko Matsakis
a7e0eb3581
allow enums that ref themselves via unsafe pointers
2012-05-03 17:08:18 -07:00
Tim Chevalier
29b807be2a
Removed unused import of std::deque
2012-05-03 15:37:02 -07:00
Niko Matsakis
cfa09d35a3
Revert "allow fn exprs to omit arg types"
...
This reverts commit 1ba4ca4c4a0153578e812baf5f7f5554d079de40.
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
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
Brian Anderson
74096a79d8
rustc: Fix comment about ABI in trans::native
2012-05-03 12:07:43 -07:00
Brian Anderson
af263e43c2
rustc: Link to original Clay x86 classification code
2012-05-03 11:42:25 -07:00
Jyun-Yan You
bdebe92400
add forgotten index and fix array type
2012-05-03 09:43:00 -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
Brian Anderson
11354963b3
rustc: Hack around some FFI bustage. Unbreak servo
2012-05-02 18:35:29 -07:00
Graydon Hoare
b12e27595e
Error message reformatting, close #2309 .
2012-05-02 14:47:33 -07:00
Tim Chevalier
931514cfb6
Remove commented-out code and old comments that accidentally snuck in
2012-05-02 14:02:22 -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
Graydon Hoare
1c1af99052
Fix symbol mangling in the presence of trailing version numbers.
2012-05-01 17:21:06 -07:00
Graydon Hoare
79ed1f2df4
New lint pass for picking out uses of old-style vecs and str.
2012-05-01 12:58:07 -07:00