about summary refs log tree commit diff
path: root/src/rustc/middle
AgeCommit message (Collapse)AuthorLines
2012-04-07Refactor inference so that subtyping/lub/glb share more codeNiko Matsakis-645/+435
2012-04-07Use version and hash in crate_map nameHaitao Li-5/+9
Related issue #2137
2012-04-06Re-rename option functionsTim Chevalier-23/+23
get_with_default (nee from_maybe) => get_default with_option (nee maybe) => map_default with_option_do (nee may) => iter As per discussion of 21be1379d561b6679a8a2ea47dce88f948c5acca
2012-04-06Remove support for old-style forMarijn Haverbeke-81/+3
Closes #1619
2012-04-06Convert old-style for loops to new-styleMarijn Haverbeke-339/+342
Most could use the each method, but because of the hack used to disambiguate old- and new-style loops, some had to use vec::each. (This hack will go away soon.) Issue #1619
2012-04-06continue refactoring to remove commutativity assumptionNiko Matsakis-165/+275
and introduce more indirection where it may be needed
2012-04-06Make tps invariant for now. Fixes #1973.Niko Matsakis-8/+8
2012-04-06further refactoring away from commutativityNiko Matsakis-14/+34
2012-04-06refactor to make combine less inherently commutativeNiko Matsakis-3/+28
2012-04-06improve error messagesNiko Matsakis-39/+72
2012-04-05add static region and also fix regions to be contravariantNiko Matsakis-71/+110
2012-04-05Mangle exported names using node IDs rather than typesTim Chevalier-4/+4
Use node IDs rather than types to ensure exported names are unique. duplicate symbol. Closes #2074.
2012-04-05simplify typing rule for vector addition: use mutability of LHSNiko Matsakis-13/+417
2012-04-05Print "expected a record with field..." fields in the right orderTim Chevalier-9/+12
Because terr_record_mismatch was getting called by infer::flds, which takes types a and b where it's trying to prove a <: b, the expected and actual fields were switched. Fixed it. Closes #2094
2012-04-04wip: refactor repr of regionsNiko Matsakis-921/+1254
- we now distinguish bound/free parameters (see region-param test case for why this is necessary) - we also track bounds on region variables - also, restructure fold_ty() to have multiple variants without duplication instead of one overloaded folder. This also allows for using block functions.
2012-04-04refactor to condense common usage patternNiko Matsakis-33/+25
2012-04-04Make nonconstructable enums noncopyable, close #1907.Graydon Hoare-6/+11
2012-04-04rustc: Don't allow recursive constantsBrian Anderson-5/+67
2012-04-04rustc: Allow consts to refer to other constsBrian Anderson-4/+42
2012-04-03std: Rename result::methods to result::extensionsErick Tryzelaar-2/+2
2012-04-03std: change timeval to ns resolution timespecErick Tryzelaar-4/+4
This lets us use the more precise clock_gettime on posix machines.
2012-04-03std: change time::timeval to be {sec: i64, usec: i32}.Erick Tryzelaar-1/+1
It's possible to have negative times if expressing time before 1970, so we should use signed types. Other platforms can return times at a higher resolution, so we should use 64 bits.
2012-04-03Monomorphize class constructors, support generic classes and class methodsTim Chevalier-114/+152
Allow class methods to have type parameters (this is a change from the original classes proposal). Add test cases for classes with type parameters, and classes with methods that have their own type parameters.
2012-04-03Output type sizes in reinterpret_cast error messageMarijn Haverbeke-6/+8
Closes #2095
2012-04-03Ensure method names in iface and impl items are uniqueMarijn Haverbeke-8/+10
Closes #2114
2012-04-02Construct new strings through upcalls.Graydon Hoare-8/+4
2012-04-02Rename some core::option functionsTim Chevalier-21/+21
from_maybe => get_with_default maybe => with_option may => with_option_do I know these names are kind of ridiculous, but it's the best I could think of. Feel free to bikeshed. Closes #2081
2012-04-02Remove redundant **tydesc gepi/load pair in call_tydesc_glue_full.Graydon Hoare-3/+1
2012-03-30rustc: Convert some error logs to debugBrian Anderson-2/+2
2012-03-30Change a span_err back to span_fatalMarijn Haverbeke-1/+1
Closes #2073
2012-03-29add some comments explaining how the tables workNiko Matsakis-0/+35
2012-03-29refactor to store the types during inference in tables in the fcxNiko Matsakis-177/+351
this is a step towards separating out the repr. of types during inference from the repr. in later stages.
2012-03-29generate correct constraints for assignmentsNiko Matsakis-2/+2
2012-03-29resolve type variables with no constraints to botNiko Matsakis-4/+12
2012-03-29rustc: Generate fewer landing padsBrian Anderson-5/+34
2012-03-29rustc: Only invoke when there are cleanupsBrian Anderson-17/+63
2012-03-29rustc: Delete some unused invoke codeBrian Anderson-21/+3
2012-03-29rustc: Don't generate landing pad cleanups for boxy thingsBrian Anderson-10/+89
2012-03-29rustc: Remove the rustsyntax::attr wrapper in frontBrian Anderson-7/+7
2012-03-29Require "self" as base expression for intra-class method or field referencesTim Chevalier-108/+8
All field or method references within a class must begin with "self." now. A bare reference to a field or method in the same class will no longer typecheck.
2012-03-29rustc: Fix an infinite loop during size calculations for recursive region ↵Patrick Walton-1/+1
pointer types
2012-03-28Allow explicit self-calls within classesTim Chevalier-66/+86
Allow writing self.f() within a class that has a method f. In a future commit, this syntax will be required. For now, you can write either self.f() or f(). I added a "privacy" field to all methods (whether class methods or not), which allowed me to refactor the AST somewhat (getting rid of the class_item type; now there's just class_member).
2012-03-28use fresh vars in place of _|_ when incorrect # of params suppliedNiko Matsakis-5/+7
2012-03-28Detect and report types which could never be instantiated.Niko Matsakis-3/+163
Fixes #2063.
2012-03-28rustc: Universally quantify regions when calling functions. Un-XFAIL ↵Patrick Walton-118/+106
regions-addr-of-ret.rs.
2012-03-28Allow references to "self" within classesTim Chevalier-31/+77
Allow writing self.f within a class that has a field f. Currently, the compiler accepts either self.f or f. In a future commit I'll require writing self.f and not f. Not sure whether self.f() works if f is a method (making sure that works next).
2012-03-28Make sure type_use.rs doesn't get lost in recursive enumsMarijn Haverbeke-7/+12
Closes #2059
2012-03-27Enforce mutability declarations in classes; correct shapes for classesTim Chevalier-28/+106
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-27Emergency safe-ref-checker maintenanceMarijn Haverbeke-82/+92
It still has some big problems, but at least it more or less understands block arguments now. Closes #1925