Patrick Walton
0cd72d24dc
rustc: Autoderef through region pointers
2012-03-14 16:13:05 -07:00
Marijn Haverbeke
de79caa97e
Add crude support for casts in constant expressions
...
Only casts to integral and float types are supported
Closes #1975
2012-03-14 18:05:28 +01:00
Niko Matsakis
7c70d35a10
rewrite unify in a modal style, extend result module
2012-03-13 21:53:14 -04: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
Brian Anderson
b968c8e6cd
Name types after their modules instead of 't'
2012-03-13 15:14:17 -07:00
Patrick Walton
0837a6ba04
rustc: Don't cache ast_ty_to_ty results for types that have references
2012-03-13 14:13:13 -07:00
Brian Anderson
cd72b1f848
Overhaul constructor naming in libs
2012-03-13 11:07:22 -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
3e8bb22af1
rustc: Unify regions in most cases. (Nested functions aren't properly handled yet.)
2012-03-11 13:28:43 -07:00
Tim Chevalier
8ab075ee45
Clean up occurs check code and give non-breaking loop {..}s _|_ type
...
The latter change is so that code dominated by a loop{ } without a
break gets considered unreachable.
The former change is just cosmetic (occurs_check_fails was a predicate
when it should be a unit-typed function that can fail).
2012-03-10 20:35:41 -08:00
Brian Anderson
91e5a1c8b3
core: Remove the nearly empty math module
...
This mod only had two functions, all of whose users have been changed
to use the uint module.
2012-03-10 17:43:19 -08:00
Patrick Walton
4ffcb95974
rustc: Perform region inference
2012-03-09 16:40:37 -08:00
Patrick Walton
8ce6b0dd21
rustc: Add appropriate type predicates for references. Simple uses of references/region pointers now work.
2012-03-08 17:22:43 -08:00
Patrick Walton
0722786664
rustc: Add some missing cases in various folds for reference types and some broken trans code for the address-of operator
2012-03-08 15:55:28 -08:00
Patrick Walton
0e17cdb627
rustc: Add regions to the type system
2012-03-08 14:05:56 -08:00
Patrick Walton
c9cf73f0a8
rustc: represend -> represent in a comment
2012-03-08 13:01:08 -08:00
Marijn Haverbeke
c71306b0db
Explicitly store self_ids use for self locals in methods
...
This makes it possible to move them between crates without confusion,
and to instantiate them at a point where the monomorphizing
substitutions are known.
Issue #1944
2012-03-08 21:17:32 +01:00
Marijn Haverbeke
fd465f91a8
Drop collect_items pass, create decls on demand
...
This solves a problem with inlined functions that have inner functions.
2012-03-08 21:17:32 +01:00
Marijn Haverbeke
4e4bd585cd
Track all exports in exp_map
...
This is needed because the reachability checker needs to be able to
follow exports.
Issue #1934
2012-03-06 17:11:30 +01:00
Brian Anderson
0ee96de4ee
rustc: Lower case error messages
2012-03-05 17:05:20 -08:00
Tim Chevalier
e2fa6f03f5
Translate simple classes
...
Programs using classes with fields only (no methods) compile and run,
as long as nothing refers to a class in a different crate (todo).
Also changed the AST representation of classes to have a separate
record for constructor info (instead of inlining the fields in the
item_class node), and fixed up spans and pretty-printing for
classes.
2012-03-04 12:43:17 -08:00
Graydon Hoare
87c14f1e3d
Move src/comp to src/rustc
2012-03-02 18:46:13 -08:00