summary refs log tree commit diff
path: root/src/rustc/middle/ty.rs
AgeCommit message (Collapse)AuthorLines
2012-03-28rustc: Universally quantify regions when calling functions. Un-XFAIL ↵Patrick Walton-12/+18
regions-addr-of-ret.rs.
2012-03-27Enforce mutability declarations in classes; correct shapes for classesTim Chevalier-9/+20
1. Enforce mutability declarations on class fields. Don't allow any mutation of class fields not declared as mutable (except inside the constructor). 2. Handle classes correctly in shape (treat classes like records).
2012-03-27make type_kind exhaustive, add an entry for type_self (in particular)Niko Matsakis-1/+3
2012-03-26Bulk-edit mutable -> mut.Graydon Hoare-4/+4
2012-03-26rustc: Move eval_const_expr to its own modBrian Anderson-3/+3
2012-03-26Enforce privacy declarations for class fields and methodsTim Chevalier-10/+24
2012-03-26Disallow ret inside of block functionsMarijn Haverbeke-10/+5
Also adds proper checking for cont/break being inside a loop. Closes #1854 Issue #1619
2012-03-24rustc: Add some simple region checking (no region vars yet)Patrick Walton-53/+3
Amazingly, this causes no test cases to fail!
2012-03-24prune unused unification code; leave region code that still needs to be portedNiko Matsakis-628/+16
2012-03-23Implement new inference algorithm.Niko Matsakis-1/+9
2012-03-23rustc: Stub a table of borrowingsPatrick Walton-2/+10
2012-03-23rustc: Make region folding not descend into function typesPatrick Walton-7/+15
Since region parameters are always universally quantified at the function level, this would be incorrect.
2012-03-23rustc: Redo region inference to be a bit less brokenPatrick Walton-128/+188
2012-03-23Implement built-in native modules as an alternative to intrinsicsMarijn Haverbeke-1/+5
Issue #1981
2012-03-22Make cross-crate calls to class methods workTim Chevalier-1/+1
2012-03-21add mut decls to rustc and make them mandatoryNiko Matsakis-54/+51
2012-03-21rustc: Use the right "nxt" function in unify_regionsPatrick Walton-3/+3
2012-03-21rustc: Add a function to record region bindingsPatrick Walton-0/+28
2012-03-21rustc: Check call and bind expressions using a set of region bindingsPatrick Walton-1/+1
2012-03-21rustc: Add a version of `demand` that takes in a set of region variable bindingsPatrick Walton-3/+7
2012-03-21methods workTim Chevalier-2/+38
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-21rustc: Add region unification functionsPatrick Walton-2/+60
2012-03-21rustc: Introduce re_params into the typecheckerPatrick Walton-9/+17
This is the first step of the region refactoring I need to do in order to handle named regions properly.
2012-03-20Class methods WIPTim Chevalier-38/+45
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-20core: Rename unsafe::leak to unsafe::forget. Closes #2031Brian Anderson-1/+1
2012-03-20Revert order of arguments to option::maybe and from_maybeMarijn Haverbeke-1/+1
Closes #2019
2012-03-16Encode both private and public class fields in metadataTim Chevalier-6/+2
This is necessary to calculate the correct offsets for field references. Simple cross-crate class tests (still with fields only) now pass.
2012-03-16Classes WIPTim Chevalier-33/+69
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-16core: Store reexporting result and either. Closes #1997Brian Anderson-0/+1
2012-03-16Remove shared tydescsMarijn Haverbeke-12/+7
All tydescs are static now, there's no need to worry about marshalling them between threads anymore.
2012-03-16Support binding of methods off boxed iface valuesMarijn Haverbeke-1/+5
Closes #435
2012-03-15rustc: Describe why regions failed to unify as part of the type error messagePatrick Walton-7/+15
2012-03-15rustc: Index blocksPatrick Walton-1/+2
2012-03-15rustc: Create self region bindings, and forbid the self region from being ↵Patrick Walton-2/+4
used in places it shouldn't be
2012-03-15Reuse monomorphized functions more aggressivelyMarijn Haverbeke-35/+25
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-15Remove support for dynamically-sized types from translation codeMarijn Haverbeke-18/+1
2012-03-15Hugely simplify iface handlingMarijn Haverbeke-0/+9
With the assumption of monomorphization
2012-03-14std: Rename the hashmap constructors to conform to new standardsBrian Anderson-7/+7
Instead of using the new_ prefix just name them after their type
2012-03-14rustc: Autoderef through region pointersPatrick Walton-1/+1
2012-03-14Add crude support for casts in constant expressionsMarijn Haverbeke-1/+1
Only casts to integral and float types are supported Closes #1975
2012-03-13rewrite unify in a modal style, extend result moduleNiko Matsakis-234/+263
2012-03-13rustc: Infer regions of variant arguments to the caller regionPatrick Walton-0/+4
2012-03-13rustc: Get reference typedefs workingPatrick Walton-6/+12
2012-03-13Name types after their modules instead of 't'Brian Anderson-2/+2
2012-03-13rustc: Don't cache ast_ty_to_ty results for types that have referencesPatrick Walton-1/+9
2012-03-13Overhaul constructor naming in libsBrian Anderson-4/+5
2012-03-12rustc: Map region names to their functions. Also speed up region checking by ↵Patrick Walton-13/+26
17x.
2012-03-12rustc: Refactor regions to handle nested functions properly and fix the ↵Patrick Walton-26/+7
subtyping relation
2012-03-11rustc: Unify regions in most cases. (Nested functions aren't properly ↵Patrick Walton-3/+50
handled yet.)
2012-03-10Clean up occurs check code and give non-breaking loop {..}s _|_ typeTim Chevalier-12/+6
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).