Michael Sullivan
329eca6044
Make vectors uglier ([]/~). Sorry. Should be temporary. Closes #2725 .
2012-06-25 20:00:46 -07:00
Tim Chevalier
487cbf8e90
Remove resources
...
Also fixed shapes for classes with dtors, as well as handling
offsets for classes with dtors correctly in take glue.
Closes #2485
2012-06-24 15:09:57 -07:00
Lindsey Kuper
ef33c5c9bc
Typo fixes in comments.
2012-05-24 16:48:44 -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
4756556748
rustc: Move new_def_hash to ast_util
2012-05-23 00:43:02 -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
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
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
b4d1f1b2c1
replace mutbl pass with borrowck
2012-05-10 21:14:43 -07:00
Niko Matsakis
50a3dd40ae
implement new borrow ck (disabled by default)
2012-05-09 17:00:19 -07:00
Niko Matsakis
50ec6bd2c3
new cap clause syntax
2012-05-04 12:33:08 -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
35a93e61d4
rewrite region resolution so it takes place in typeck
2012-04-16 19:48:00 -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
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
c720ffdbc4
Improve region code surrounding slice types.
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
Marijn Haverbeke
c902eafa14
Convert old-style for loops to new-style
...
Most could use the each method, but because of the hack used to
disambiguate old- and new-style loops, some had to use vec::each.
(This hack will go away soon.)
Issue #1619
2012-04-06 20:38:23 +02:00
Niko Matsakis
051f24da25
add static region and also fix regions to be contravariant
2012-04-05 21:16:28 -07:00
Niko Matsakis
c0d61795de
wip: refactor repr of regions
...
- we now distinguish bound/free parameters (see region-param
test case for why this is necessary)
- we also track bounds on region variables
- also, restructure fold_ty() to have multiple variants without
duplication instead of one overloaded folder. This also allows
for using block functions.
2012-04-04 19:41:23 -07:00
Patrick Walton
b7a741b5d0
rustc: Combine and unify regions
2012-03-26 15:07:15 -07:00
Patrick Walton
7931a61ebb
rustc: Redo region inference to be a bit less broken
2012-03-23 12:22:58 -07:00
Niko Matsakis
b653a18416
add mut decls to rustc and make them mandatory
2012-03-21 21:04:14 -07:00
Patrick Walton
68e364b54d
rustc: Introduce re_params into the typechecker
...
This is the first step of the region refactoring I need to do in order to handle named regions properly.
2012-03-21 12:21:53 -07:00
Patrick Walton
bc21a5ddbe
rustc: Create self region bindings, and forbid the self region from being used in places it shouldn't be
2012-03-15 16:38:08 -07:00
Brian Anderson
3864d6d845
std: Rename the hashmap constructors to conform to new standards
...
Instead of using the new_ prefix just name them after their type
2012-03-14 18:19:08 -07:00
Patrick Walton
1e0e089185
rustc: Fix a couple of bugs that prevented taking addresses of rvalues
2012-03-14 16:50:20 -07:00
Patrick Walton
3a45f87620
rustc: Record the parent blocks of locals
2012-03-14 11:41:50 -07:00
Patrick Walton
c3516f091b
rustc: Allow the addresses of rvalues to be taken
2012-03-13 18:24:14 -07:00
Patrick Walton
fc50abe6c5
rustc: Instantiate "caller" regions when calling functions
2012-03-13 17:31:34 -07:00
Patrick Walton
b87cdd8572
rustc: Infer regions of variant arguments to the caller region
2012-03-13 16:16:27 -07:00
Patrick Walton
8cbaebbb49
rustc: Get reference typedefs working
2012-03-13 15:53:16 -07:00
Patrick Walton
107767731a
rustc: Use only ast_ty_to_ty for region inference
2012-03-13 12:01:34 -07:00
Patrick Walton
aea8736129
rustc: Fix long line
2012-03-13 11:04:02 -07:00
Patrick Walton
07b4c80c68
rustc: Record what &
would resolve to for every AST type
2012-03-13 10:44:37 -07:00
Patrick Walton
ac57bb3856
rustc: Word a comment more clearly in region.rs
2012-03-12 18:56:13 -07:00
Patrick Walton
afa046a56b
rustc: Use linked lists instead of hash tables for region binding scopes
...
Hash tables are overkill.
2012-03-12 18:47:18 -07:00
Patrick Walton
db77c38fc9
rustc: Use the name map to resolve region names
2012-03-12 13:58:08 -07:00
Patrick Walton
864ff4707e
rustc: Map region names to their functions. Also speed up region checking by 17x.
2012-03-12 13:25:10 -07:00
Patrick Walton
47bfd4f4e9
rustc: Refactor regions to handle nested functions properly and fix the subtyping relation
2012-03-12 12:43:47 -07:00
Patrick Walton
46aec2c960
rustc: Record the parent function of each function
2012-03-11 17:02:16 -07:00
Patrick Walton
cb1efb0092
rustc: Fix long lines
2012-03-11 16:18:52 -07:00
Patrick Walton
3e8bb22af1
rustc: Unify regions in most cases. (Nested functions aren't properly handled yet.)
2012-03-11 13:28:43 -07:00
Patrick Walton
e968672ac7
rustc: Map local variables to their containing blocks so we know their regions
2012-03-11 12:05:17 -07:00
Patrick Walton
4ffcb95974
rustc: Perform region inference
2012-03-09 16:40:37 -08:00