about summary refs log tree commit diff
path: root/src/rustc
AgeCommit message (Collapse)AuthorLines
2012-08-02Purge placement new; Make borrowck know about unary move.Niko Matsakis-177/+24
cc #3071
2012-08-02When checking loop bodies and do-expr bodies, don't require the expected ↵Tim Chevalier-10/+12
type to exist If the expected type is none (due to a type error), we shouldn't fail with an ICE, but rather, just print out another type error. Changed the do-expr type error message to make sense in this context (see the test case for how it works). Closes #3044.
2012-08-02Fixing a long lineEric Holk-1/+2
2012-08-02rustc: Translate class literals correctly if the class has a destructorPatrick Walton-1/+11
2012-08-02rustc: Throw out some more regions when normalizing typesPatrick Walton-22/+37
2012-08-02De-duplicate core::hash some, refactor the traits.Graydon Hoare-15/+16
2012-08-02Shift writer_util to a derived impl attached to the writer traitGraydon Hoare-3/+8
2012-08-02Add target_word_size cfg variableGraydon Hoare-4/+5
2012-08-02Make typeck::collect aware of provided methods in traits.Lindsey Kuper-2/+13
2012-08-02Extend ast_map to know about method declarations in traits.Michael Sullivan-1/+13
2012-08-02Remove modes from map API and replace with regions.Niko Matsakis-89/+95
API is (for now) mostly by value, there are options to use it by reference if you like. Hash and equality functions must be pure and by reference (forward looking to the day when something like send_map becomes the standard map).
2012-08-01Convert ret to returnBrian Anderson-1640/+1683
2012-08-01rustc: Translate by-value pattern bindingsPatrick Walton-35/+120
2012-08-01Clean out transitional lint.Graydon Hoare-10/+0
2012-08-01Start adding infrastructure for checking trait method bodies.Lindsey Kuper-0/+15
2012-08-01Rename `convert_class_item` to `convert_field`.Lindsey Kuper-5/+5
2012-08-01Fix bad indentation.Lindsey Kuper-11/+11
2012-08-01Introduce self_info (self_ty packaged up with a node_id).Lindsey Kuper-30/+61
2012-08-01Fix inaccurate comment.Lindsey Kuper-1/+1
2012-07-31change how we print and explain region typesNiko Matsakis-9/+71
2012-07-31rustc: Parse by-reference pattern bindings with the "ref" keywordPatrick Walton-58/+70
2012-07-31rustc: Add non_camel_case_types lint checkBrian Anderson-0/+41
2012-07-31Start implementing structured constants.Graydon Hoare-172/+183
2012-07-31rustc: "paramerization" -> "parameterization" in driverPatrick Walton-1/+1
2012-07-31rustc: Implement unary move. Closes #917.Patrick Walton-6/+14
2012-07-31Introduce 'return', 'match' and 'module' as synonymsBrian Anderson-250/+250
2012-07-31rustc: Check self types in method lookup; allow required trait methods to ↵Patrick Walton-18/+172
have self types; write self types into metadata
2012-07-31std: getopts::match -> matchesBrian Anderson-1/+1
2012-07-31Change remaining "iface" occurrences to "trait"; deprecate "iface"Lindsey Kuper-39/+39
2012-07-30Frontend bits for #2317, general const-expr classification.Graydon Hoare-1/+195
2012-07-30Change syntax extension syntax: `#m[...]` -> `m!{...}`.Paul Stansifer-1142/+1142
2012-07-30Feed the interner to the pretty-printer, in anticipation of pretty-printing ↵Paul Stansifer-1/+2
token trees.
2012-07-30Impl-ize interner.Paul Stansifer-3/+3
2012-07-30rustc: "iface" -> "trait" in comments, error messages, and identifiers.Lindsey Kuper-22/+22
(Also "interface" -> "trait" in error messages.)
2012-07-30rustc: "ifce" -> "trt" in identifiersLindsey Kuper-14/+14
2012-07-30Fix #2979: inference for lifetimes of & expressionsNiko Matsakis-247/+572
What we now do is to create a region variable for each & expression (and also each borrow). The lifetime of this variable will be checked by borrowck to ensure it is not greater than the lifetime of the underlying data. This both leads to shorter lifetimes in some cases but also longer in others, such as taking the address to the interior of unique boxes tht are rooted in region pointers (e.g., returning a pointer to the interior of a sendable map). This may lead to issue #2977 if the rvalue is not POD, because we may drop the data in trans sooner than borrowck expects us to. Need to work out precisely where that fix ought to occur.
2012-07-30rustc: Make option<&foo> no longer cause LLVM asserts by getting rid of ↵Patrick Walton-0/+4
regions in normalize_ty
2012-07-30LONG LINES\!Brian Anderson-3/+7
2012-07-30rustc: use new siphash impl instead of sha1Damian Gryski-28/+28
Updating types std::sha1::sha1 -> hash::streaming was a relatively small change. Renaming the variables to reflect that things aren't sha1s any more touched far more lines.
2012-07-29Rewrite bitv to use classes and optimize its representationTim Chevalier-241/+217
Rewrote bitv as a class that uses a 32-bit int as its representation for bit vectors of 32 bits or less, and a vector (the old representation) otherwise. I didn't benchmark very much, but a bit of informal benchmarking suggested this is a win. Closes #2341
2012-07-27rustc: Use coherence for operator overloading.Patrick Walton-60/+140
The only use of the old-style impls is now placement new.
2012-07-27Forbid duplicate fields in record types and exprsTim Chevalier-1/+39
Closes #3033
2012-07-27Correctly forbid upvars in nested impls, traits and classesTim Chevalier-12/+72
Previously, resolve was allowing impls, traits or classes that were nested within a fn to refer to upvars, as well as referring to type parameters bound by the fn. Fixing this required adding a new kind of def: def_typaram_binder, which can refer to any of an impl, trait or class that has bound ty params. resolve uses this to enforce that methods can refer to their parent item's type parameters, but not to outer items' type parameters; other stages ignore it. I also made sure that impl, trait and class methods get checked inside a MethodRibKind thing so as to forbid upvars, and changed the definition of MethodRibKind so that its second argument is an optional node_id (so that required trait method signatures can be checked with a MethodRibKind as well).
2012-07-27change region inference to not consider & that appears in a fnNiko Matsakis-1/+10
type as indicating region parameterization
2012-07-27core: Trait-ify various overloaded operatorsPatrick Walton-0/+1
2012-07-27In resolve, check for duplicate pattern-bound varsTim Chevalier-10/+21
Closes #3038
2012-07-27Make alts on uninhabited enum types typecheck and translate properlyTim Chevalier-10/+55
Possibly one of the silliest Rust commits ever. Closes #3037
2012-07-26Removed the rest of the vec::view calls that were marked with #2880. Fixes ↵Eric Holk-12/+6
#2880.
2012-07-26Use iteration protocol for ebml, use vec::view in more places (issue #2880)Eric Holk-44/+38
2012-07-26Nomenclature fixes in the lint checker. Fewer double-negatives.Graydon Hoare-131/+177
New style is allow(foo), warn(foo), deny(foo) and forbid(foo), mirrored by -A foo, -W foo, -D foo and -F foo on command line. These replace -W no-foo, -W foo, -W err-foo, respectively. Forbid is new, and means "deny, and you can't override it".