Tim Chevalier
16dd6c4756
Fix encoding of class ctors
...
Class tests still fail at runtime
2012-03-16 19:20:36 -07:00
Josh Matthews
d958123d8a
Don't break -g in the presence of monomorphization.
2012-03-16 20:19:52 -04:00
Brian Anderson
154a3fdf44
rustc: Unify impl self types in the opposite order so variance is correct
2012-03-16 17:06:15 -07:00
Tim Chevalier
1680ccce1e
Classes WIP
...
Cross-crate metadata for classes works well enough that programs with
classes in other crates compile successfully, but output wrong results.
Checking in work so far to avoid merge hassles. (Tests are xfailed.)
2012-03-16 15:28:05 -07:00
Brian Anderson
47d468f08c
core: Store reexporting result and either. Closes #1997
2012-03-16 15:14:37 -07:00
Niko Matsakis
e399ddbf17
allow binding of fn~, make result fn@. fixes 1899.
2012-03-16 17:48:53 -04:00
Patrick Walton
f6a792585b
rustc: Give a better error message when references involving the caller region fail to unify
2012-03-16 14:02:02 -07:00
Marijn Haverbeke
35fc4a4291
Check kind bounds when calling methods
...
Closes #1915
2012-03-16 17:05:29 +01:00
Marijn Haverbeke
25c2be0ff4
Forbid boxed ifaces with self types or generic methods in bounded params
...
They are a soundness hole.
Closes #1994
2012-03-16 15:39:07 +01:00
Marijn Haverbeke
22bef74b55
Remove shared tydescs
...
All tydescs are static now, there's no need to worry about
marshalling them between threads anymore.
2012-03-16 15:38:42 +01:00
Marijn Haverbeke
15a325f267
Support binding of methods off boxed iface values
...
Closes #435
2012-03-16 12:58:26 +01:00
Patrick Walton
e464e2ba56
rustc: Describe why regions failed to unify as part of the type error message
2012-03-15 19:19:32 -07:00
Patrick Walton
4ea3b0b89c
rustc: Fix the AST map to actually map blocks. Also improve region error messages involving blocks.
2012-03-15 19:06:38 -07:00
Patrick Walton
e0edcfc21c
rustc: Index blocks
2012-03-15 18:46:57 -07:00
Tim Chevalier
e3222e9905
Improve error message for passing mutable argument by reference
2012-03-15 17:50:22 -07:00
Patrick Walton
95ce42b346
rustc: Instantiate self regions in impls
2012-03-15 17:14:02 -07:00
Patrick Walton
0095e6d85b
rustc: Have the typechecker pick up the resolved self region
2012-03-15 16:48:53 -07:00
Marijn Haverbeke
146b61189a
Get rid of rust_crate_cache in the runtime
...
We are no longer generating dynamic tydescs or dicts.
Issue #1982
2012-03-16 00:44:06 +01: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
Niko Matsakis
d365ec5c7d
kill old serialization code
2012-03-15 18:30:10 -04:00
Niko Matsakis
3dca3393fa
switch over to using new serialize/deserialize code
2012-03-15 18:30:08 -04:00
Brian Anderson
5e8004d493
std: Follow conventions in bitv
2012-03-15 14:08:47 -07:00
Marijn Haverbeke
337d860a87
Make last-use finder treat referenced function arguments properly
...
Closes #1964
2012-03-15 17:04:35 +01:00
Marijn Haverbeke
1745ac9c61
Remove tests from astencode.rs
...
They mysteriously fail on Windows, and Niko assures me this code is about
be replaced anyway.
2012-03-15 15:44:19 +01:00
Marijn Haverbeke
2e3f1096bb
Fix bug in vtable builder
...
Closes #1947 , which I completely misdiagnosed.
2012-03-15 15:08:31 +01:00
Marijn Haverbeke
24ed441a05
Reuse monomorphized functions more aggressively
...
Adds a trans::type_use pass that, given a function body, detects how
dependant that function is on properties of its type parameters.
2012-03-15 15:08:31 +01:00
Marijn Haverbeke
3ab9978b9b
Remove support for dynamically-sized types from translation code
2012-03-15 15:08:31 +01:00
Marijn Haverbeke
a4d75a4ed1
Remove GEP_tup_like
2012-03-15 15:08:31 +01:00
Marijn Haverbeke
c3a93ecd3f
Remove dynastack code from compiler
2012-03-15 15:08:30 +01:00
Marijn Haverbeke
bc8a43a776
Remove lltyparams field in trans::common::fn_ctxt
2012-03-15 15:08:30 +01:00
Marijn Haverbeke
332329f161
Don't pass an undef retptr to generic intrinsics
...
It leads to segfaults
2012-03-15 10:22:46 +01:00
Marijn Haverbeke
b6ad34bef4
Properly recognize external intrinsics
2012-03-15 10:22:46 +01:00
Marijn Haverbeke
e4cbd43c43
Huge kludge to get intrinsics' type parameters passed
2012-03-15 09:41:21 +01:00
Marijn Haverbeke
9aa78e34e4
Never pass tydesc to functions
...
My assumption that native generics needed them was wrong, so tydescs
can be eliminated from function signatures completely.
2012-03-15 09:40:52 +01:00
Marijn Haverbeke
47f35c9d34
Properly replace iface tps with impl tps in static method calls
...
Un-xfail iface-generic.rs
2012-03-15 09:32:53 +01:00
Marijn Haverbeke
fe90c189f4
Only write metadata for items that actually appear in the root AST
...
Not for imported ASTs from inlined items.
2012-03-15 09:32:53 +01:00
Marijn Haverbeke
2c8c50d6cb
Make sure enum and resource constructors are inlined properly
2012-03-15 09:32:53 +01:00
Marijn Haverbeke
4650e8bcf4
Make sure resource destructors are properly monomorphized
2012-03-15 09:32:53 +01:00
Marijn Haverbeke
8f84d4c8b6
Remove a large part of the tydesc-passing code
2012-03-15 09:31:34 +01:00
Marijn Haverbeke
83c9f58534
Rename dict to vtable throughout the compiler
...
The difference went away.
2012-03-15 09:28:50 +01:00
Marijn Haverbeke
4511f936b1
Hugely simplify iface handling
...
With the assumption of monomorphization
2012-03-15 09:26:54 +01:00
Marijn Haverbeke
168398bb3d
Stop generating generic versions of generic functions
...
Monomorphic instances are generated on demand.
2012-03-15 09:00:21 +01:00
Marijn Haverbeke
47e65403b7
Disallow calling generic methods through a boxed iface
2012-03-15 08:59:29 +01:00
Marijn Haverbeke
5e647d799e
Fix assumption that monomorphized method's impls are crate-local
2012-03-15 08:59:29 +01:00
Marijn Haverbeke
75e6fb4feb
Fix monomorphization of resource constructors
2012-03-15 08:59:29 +01:00
Marijn Haverbeke
0e5da379dd
Turn on monomorphization by default
2012-03-15 08:59:29 +01:00
Marijn Haverbeke
c67679ea03
Write out the AST for all externally-reachable generics
2012-03-15 08:59:29 +01:00
Brian Anderson
2a293ed8b8
Convert *u8 native string users to *c_char
2012-03-14 18:20:14 -07:00
Brian Anderson
3a2df84d89
core: Rename str::from_cstr et. al to from_buf
2012-03-14 18:19:08 -07:00
Brian Anderson
9e480708a2
core:: Eliminate str::sbuf. Replace with *u8
2012-03-14 18:19:08 -07:00