Niko Matsakis
bf9d714d46
Avoid unifying vars when possible; handle bot (more) correctly
2012-03-24 21:38:43 -07:00
Niko Matsakis
ee5d0f5e3f
new test which features conflicting variance requirements
2012-03-24 21:38:42 -07:00
Patrick Walton
f507b54f19
test: Rename run-pass/simple-regions.rs to run-pass/regions-simple.rs
...
This groups all the region tests under regions-*.
2012-03-24 19:21:51 -07:00
Patrick Walton
8bef2716fe
test: Add a simple test for dangling pointers
2012-03-24 19:00:08 -07:00
Tim Chevalier
aae14e352a
Allow methods to call other methods in the same class
2012-03-23 23:10:45 -07:00
Tim Chevalier
bebdfe8ce8
Add another test for cross-crate method calls
2012-03-23 23:10:45 -07:00
Niko Matsakis
f5edb5ee18
xfail-test regions tests
2012-03-23 22:06:39 -07:00
Niko Matsakis
042c532a08
Implement new inference algorithm.
2012-03-23 21:47:28 -07:00
Tim Chevalier
8bbd78075f
Handle self correctly when translating classes
...
This change uses the same code for handling the "self" reference for
classes as is already used for impls/ifaces. This allows removing the
extra maybe_self_id argument (which was just for classes) to trans_closure
that I added before. I also rewrote the translation for class ctors so
that it doesn't generate new AST nodes (instead translating directly).
Also changed visit so that it visits class ctors correctly with visit_fn,
and changed typestate to not do return-checking when visiting a class ctor.
2012-03-23 20:37:50 -07:00
Patrick Walton
cab4f1685b
test: Add a test case that ensures ret &EXPR
works.
2012-03-23 16:18:28 -07:00
Patrick Walton
7592dae949
test: Fix unresolved name in regions-mock-trans-impls.rs
2012-03-23 15:44:37 -07:00
Patrick Walton
c56ec7b02a
test: Add a version of the "mock-trans" regions test case that uses impls
2012-03-23 15:28:47 -07:00
Patrick Walton
b9c4dbeb33
test: Fix leak in regions-mock-trans
2012-03-23 15:17:34 -07:00
Patrick Walton
df77eb433b
test: Fix whitespace at EOL
2012-03-23 15:05:39 -07:00
Patrick Walton
aa0f25ae31
test: Add a trans.rs-workalike test case for regions
2012-03-23 14:42:39 -07:00
Patrick Walton
7931a61ebb
rustc: Redo region inference to be a bit less broken
2012-03-23 12:22:58 -07:00
Marijn Haverbeke
84019aa0dc
Keep an explicit map of things that have to be spilled
...
This prevents us from spilling locals more than once.
Closes #2040
2012-03-23 16:08:01 +01:00
Marijn Haverbeke
894b7469d6
Replace most uses of intrinsics in core with builtins
...
Issue #1981
2012-03-23 10:49:47 +01:00
Tim Chevalier
73a0c17d77
Make cross-crate calls to class methods work
2012-03-22 20:32:47 -07:00
Brian Anderson
f7f1490d6e
rt: Run resource destructors during cycle collection
2012-03-22 19:07:31 -07:00
Niko Matsakis
dc07280b08
make --enforce-mut-vars always on, add mut annotations to remaining files
2012-03-22 09:58:19 -07:00
Tim Chevalier
30c272cb3a
methods work
...
Cross-crate method calls don't work yet. Added
run-pass/class-method-cross-crate to test that, but it's xfailed
References to fields within methods don't work yet. Added
run-pass/class-methods to test that, but it's also xfailed
2012-03-21 13:53:21 -07:00
Niko Matsakis
7cc0f554ae
add test for commit 9502fb99e0d535c8ced17ac61e63ebbd67b7dba7
2012-03-21 08:23:31 -07:00
Niko Matsakis
cce2751461
Adjust arena definition to be compatible with placement new
2012-03-21 05:46:31 -07:00
Niko Matsakis
cfcbec3cc3
Implement an initial version of placement new.
2012-03-20 20:39:40 -07:00
Graydon Hoare
084fe56ad5
Conditionalize test to only run double/byte/double test on x64 for now.
2012-03-20 17:34:21 -07:00
Graydon Hoare
faacbb38f0
Xfail struct-return test. x64 ABI is not quite right yet.
2012-03-20 17:13:48 -07:00
Tim Chevalier
b06dc884e5
Class methods WIP
...
In particular, use the ast::method type to represent a class method,
and try to reuse as much iface code as possible. (This makes sense now
since I'll be allowing polymorphic class methods.)
2012-03-20 17:07:07 -07:00
Graydon Hoare
855c99ea75
Some tests for passing and returning structures by value on x64. Close #1402 . Close #1970 .
2012-03-20 16:44:56 -07:00
Brian Anderson
b181ea415e
core: Rename unsafe::leak to unsafe::forget. Closes #2031
2012-03-20 15:20:37 -07:00
Brian Anderson
4e3e13302d
test: Remove pretty/issue-953. Doesn't typecheck
2012-03-19 16:11:46 -07:00
Tim Chevalier
e3a1c5c96a
Encode both private and public class fields in metadata
...
This is necessary to calculate the correct offsets for field references.
Simple cross-crate class tests (still with fields only) now pass.
2012-03-16 20:36:07 -07: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
Niko Matsakis
e399ddbf17
allow binding of fn~, make result fn@. fixes 1899.
2012-03-16 17:48:53 -04:00
Marijn Haverbeke
35fc4a4291
Check kind bounds when calling methods
...
Closes #1915
2012-03-16 17:05:29 +01:00
Patrick Walton
0972571cdd
test: Add a test case for self regions and typeclass implementations
2012-03-15 18:13:57 -07:00
Brian Anderson
f69e9ff643
test: Fix breakage
2012-03-15 15:18:04 -07:00
Brian Anderson
e1b14f6d5b
test: Fix name of bitv type
2012-03-15 14:54:41 -07:00
Marijn Haverbeke
3ab9978b9b
Remove support for dynamically-sized types from translation code
2012-03-15 15:08:31 +01:00
Brian Anderson
9e480708a2
core:: Eliminate str::sbuf. Replace with *u8
2012-03-14 18:19: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
Niko Matsakis
a3d2882ffd
fixup auto_serialize's treatment of nullary variants
2012-03-14 21:05:06 -04:00
Patrick Walton
b516913a5d
test: Remove unsafe from the region tests
2012-03-14 16:18:33 -07:00
Patrick Walton
83ed4f4bc4
test: Add a test case for the "self" region in enums
2012-03-14 15:41:54 -07:00
Niko Matsakis
1600be2c3b
fix auto_serialize for enums with type parameters
2012-03-14 17:19:33 -04:00
Niko Matsakis
ffa187db25
adjust auto_serialize to generate fns named serialize_T()
...
We used to generate a module T with a serialize() and deserialize() fn,
but this was suboptimal for a number of reasons:
- it required moving serialization into core so that uint etc worked
- it was harder to override the serialization behavior locally
(this is now trivial)
2012-03-14 11:49:28 -04:00
Niko Matsakis
9086c6f5a2
merge all auto_serialize tests into one
2012-03-13 21:30:07 -04:00
Niko Matsakis
b30cb8e43a
implement deserialization, rename mk_mem_buffer() to mem_buffer()
2012-03-13 21:30:07 -04:00
Niko Matsakis
d91742294f
first (functional) version of the auto_serialize syntax ext
2012-03-13 21:30:07 -04:00