Patrick Walton
407be52036
rustc: Generalize resolve_var to work with regions too
2012-03-26 12:42:38 -07:00
Tim Chevalier
11610f9ca1
In typeck, don't call ty::store_iface_methods on private methods
...
This was resulting in a different error message depending on whether
the private method you were trying to call was in the same crate
or a different one.
2012-03-26 10:46:37 -07:00
Niko Matsakis
21111660ca
Improve type inference to compute LUB/GLB
2012-03-26 10:34:58 -07:00
Tim Chevalier
c282810ab0
Enforce privacy declarations for class fields and methods
2012-03-26 10:00:33 -07:00
Marijn Haverbeke
b89a5af2ab
Check in a forgotten new file
2012-03-26 12:54:06 +02:00
Marijn Haverbeke
87e097a853
Disallow ret inside of block functions
...
Also adds proper checking for cont/break being inside a loop.
Closes #1854
Issue #1619
2012-03-26 12:45:47 +02:00
Marijn Haverbeke
e4c141a331
Fix bug in generation of non-generic resource dtors
...
Issue #1944
2012-03-26 11:31:17 +02:00
Niko Matsakis
763142816e
repair the build---also, make try/commit work over both ty/region vars
2012-03-25 13:32:13 -07:00
Patrick Walton
8462c6c831
rustc: Generalize several parts of infer in preparation for using them for region bounds as well
2012-03-24 23:14:45 -07:00
Niko Matsakis
bf9d714d46
Avoid unifying vars when possible; handle bot (more) correctly
2012-03-24 21:38:43 -07:00
Patrick Walton
bd6e6e349b
rustc: Stub some region resolution stuff in infer
2012-03-24 21:30:57 -07:00
Patrick Walton
7c27ec72d1
rustc: Add some simple region checking (no region vars yet)
...
Amazingly, this causes no test cases to fail!
2012-03-24 18:44:05 -07:00
Niko Matsakis
3e385a80d4
prune unused unification code; leave region code that still needs to be ported
2012-03-24 09:22:09 -07:00
Tim Chevalier
aae14e352a
Allow methods to call other methods in the same class
2012-03-23 23:10:45 -07:00
Niko Matsakis
6b84cee5d3
add a few measly comments, remove some dead code
2012-03-23 22:36:37 -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
40443768b1
Fix breakage
2012-03-23 20:53:38 -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
713b3585c6
rustc: Remove // */
sequence from trans/base.rs; it breaks vi syntax highlighting
2012-03-23 18:21:23 -07:00
Patrick Walton
0eae490669
rustc: Stub a table of borrowings
2012-03-23 17:28:24 -07:00
Patrick Walton
c56910fc9a
rustc: Make region folding not descend into function types
...
Since region parameters are always universally quantified at the function
level, this would be incorrect.
2012-03-23 17:06:24 -07:00
Patrick Walton
cba007e6c8
rustc: Fix parsing of ret &EXPR
...
The parser didn't think that `&` could start an expression.
2012-03-23 16:15:58 -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
1b81c5112a
Remove last vestiges of old-style intrinsics
...
Closes #2048
2012-03-23 16:08:01 +01:00
Marijn Haverbeke
a84b56bc70
Remove more needless context threading in trans
2012-03-23 14:45:47 +01:00
Marijn Haverbeke
5cfbbbc9ed
Revert resolve kludge that was working around #2049
2012-03-23 13:32:00 +01:00
Marijn Haverbeke
683085b3f0
Stop trying to link intrinsics.bc
2012-03-23 12:57:37 +01:00
Marijn Haverbeke
ca71e01bce
Interpret native mods with ABI rust-intrinsic as builtins
2012-03-23 12:52:53 +01:00
Marijn Haverbeke
52d618a99a
Revert removal of intrinsics
...
Oops. We can't do this yet until the next snapshot.
2012-03-23 12:51:20 +01:00
Marijn Haverbeke
c704d5a5d3
Clean up some confused shuffling of def_ids in resolve.rs
2012-03-23 12:38:36 +01:00
Marijn Haverbeke
562afef216
Rename builtin back to intrinsic
...
As per Graydon's request
Issue #1981
2012-03-23 12:21:56 +01:00
Marijn Haverbeke
f5024692d4
Remove support for the old-style intrinsics
...
Closes #2042
Closes #1981
2012-03-23 12:21:55 +01:00
Marijn Haverbeke
6374ffc5f3
Kludge in resolve to be able to land builtins
...
Something strange is happening to hash maps. I'm still investigating but
want to get my snapshot built in the meantime. (Problem only happened on
OS X.)
2012-03-23 11:09:19 +01:00
Marijn Haverbeke
cdb93d70a1
Fix bug in function-instance reuse
...
You can't safely reuse functions that pass a T by move, since they might
zero it out, which will not end well when it doesn't know its precise
size.
2012-03-23 10:49:47 +01:00
Marijn Haverbeke
16ca6e8d7f
Change vector append to no longer rely on an intrinsic
...
Issue #1981
2012-03-23 10:49:47 +01:00
Marijn Haverbeke
0545e4a920
Support [rust_stack] annotation on native functions (crudely)
2012-03-23 10:49:47 +01:00
Marijn Haverbeke
ea2e379e4f
Implement built-in native modules as an alternative to intrinsics
...
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
f3fe85dad7
Bump version numbers to 0.2
2012-03-22 15:25:02 -07:00
Graydon Hoare
b224bcf6e1
Add an LLVM-instruction-counting mode to trans.
...
Pipe to xdu to see a trans call graph of generated insns.
2012-03-22 13:44:20 -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
Niko Matsakis
b653a18416
add mut decls to rustc and make them mandatory
2012-03-21 21:04:14 -07:00
Patrick Walton
44bd8da7fd
rustc: Use the right "nxt" function in unify_regions
2012-03-21 16:13:34 -07:00
Brian Anderson
75ee4633eb
rustc: Long lines
2012-03-21 16:10:39 -07:00
Josh Matthews
5835a4cc8e
Merge remote-tracking branch 'mozilla/master'
2012-03-21 19:01:04 -04:00
Patrick Walton
b0f6dad5e3
rustc: Add a function to record region bindings
2012-03-21 15:59:57 -07:00
Josh Matthews
8142438938
Avoid mangling names differently in debug builds to work around a build error. Fix up file name and path debug information, and build one compilation unit for a crate instead of one per source file.
2012-03-21 18:56:36 -04:00
Patrick Walton
c8ab0c1b3b
rustc: Replace region parameters in function return values
2012-03-21 15:22:12 -07:00