about summary refs log tree commit diff
path: root/src/rustc/middle
AgeCommit message (Collapse)AuthorLines
2012-04-23Misc code cleanups using list::each for list iterationMarijn Haverbeke-71/+46
2012-04-23Fix broken determination of external method type param countMarijn Haverbeke-4/+6
Closes #2185
2012-04-21rustc: Cache constant C strings. Closes #2264Brian Anderson-0/+11
2012-04-20Print out return type correctly in typestate error messageTim Chevalier-6/+8
In the "not all paths return" error message, typestate was printing the AST type from the fn decl, not the ty::t type. This ended in tears when the AST return type was "ty_infer". Now it looks up the function node ID's type and uses util::ppaux::ty_to_str instead. Closes #2163.
2012-04-20Get borrowing working on fixed evecs.Graydon Hoare-8/+15
2012-04-20Add new syntax for patterns that match the head constructor onlyTim Chevalier-23/+41
Adds a new kind of pattern C(*) where C is a constructor that may have any number of fields. This pattern matches any value constructed with C, without binding names for any of the fields. Closes #1701.
2012-04-19make nominal types optionally parameterized by a self region.Niko Matsakis-789/+915
Issue #2201.
2012-04-19correct universally_quantify to use structure_of, and introduce a test for thisNiko Matsakis-42/+49
2012-04-19Annotate FIXMEs in parserTim Chevalier-2/+4
Also, get rid of two FIXMEs by refactoring some code, and moving the call_expr check for be expressions into typeck, where it seems to make more sense.
2012-04-19Add a lint pass to check for while true { ... } loopsTim Chevalier-3/+37
And suggest changing them to loop { ... }. Had to fix the few remaining while true loops (in core::io). Closes #1962.
2012-04-19Get evec slices and unique-evec slice-borrowing working.Graydon Hoare-2/+12
2012-04-19Disallow rebinding / matching against consts in altsTim Chevalier-42/+46
As per Issue #1193. Closes #1193. I had to rename a few variables ("info" and "epsilon") to avoid clashing with in-scope constants, which is responsible for all the changes other than resolve and issue-1193.rs.
2012-04-19Get fixed-size evecs working.Graydon Hoare-56/+111
2012-04-18Fix [] on str to exclude the trailing null.Graydon Hoare-5/+9
2012-04-18Require values to be copyable when castMarijn Haverbeke-10/+11
Closes #2222
2012-04-18Fix oversight in type_use.rsMarijn Haverbeke-0/+15
Closes #2053
2012-04-18Stop duplicating non-generic resource destructorsMarijn Haverbeke-6/+17
Closes #2177
2012-04-18Add a needs_drop intrinsicMarijn Haverbeke-1/+6
Closes #2055
2012-04-18Fix use of wrong block context in return-from-loop codeMarijn Haverbeke-2/+2
Closes #2142
2012-04-17Implement slice-borrowing on estr-uniq and str values.Graydon Hoare-64/+86
2012-04-17new debug flag, new testNiko Matsakis-1/+1
2012-04-17repair LUB/GLB of free/scope regions, and enable testNiko Matsakis-35/+70
2012-04-16rewrite region resolution so it takes place in typeckNiko Matsakis-875/+993
2012-04-16Get explicit unique estrs working.Graydon Hoare-20/+22
2012-04-15syntax: Cleanup attr module. Closes #1545Brian Anderson-2/+2
2012-04-15Forbid deinitializing upvars in typestateTim Chevalier-15/+41
Closes #1965.
2012-04-14implement evec/estr subtyping/lub/glb/etcNiko Matsakis-7/+66
2012-04-13integrate simple notion of borrowing into transNiko Matsakis-19/+82
2012-04-13store into the borrowings tableNiko Matsakis-59/+61
2012-04-13add initial code re: slices to borrowing, improve ty_to_strNiko Matsakis-0/+13
2012-04-13first stab at type checking for borrow: not integrated into transNiko Matsakis-333/+359
2012-04-13Annotate FIXMEs in syntax::ast and syntax::ast_utilTim Chevalier-11/+11
The main non-comment change was to change simple_path to path, as per a FIXME in ast.
2012-04-12rustc: Fix handling of - and _ in lint passBrian Anderson-1/+1
2012-04-12Support general warnings and errors in lint pass via flags and attrs. Close ↵Graydon Hoare-102/+216
#1543.
2012-04-11rustc: Long linesBrian Anderson-1/+2
2012-04-11rustc: Fix typo in error messageBrian Anderson-2/+2
2012-04-11rewrite lookup_method(), lookup_method_inner(), and lookup_method_inner_()Niko Matsakis-302/+304
2012-04-11refactor fixup_selfNiko Matsakis-59/+88
2012-04-11first attempt at an assignability checkNiko Matsakis-61/+117
2012-04-11simplify demand moduleNiko Matsakis-64/+23
2012-04-11Allow classes to implement ifacesTim Chevalier-72/+139
Introduce syntax like: iface animal { ... } class cat implements animal { ... } to allow classes to implement ifaces. Casting classes to ifaces is *not* yet supported. ifaces that a class implements are not yet included in metadata. The syntax is subject to change, and may go away completely if we decide to use duck typing to relate classes with ifaces (see http://smallcultfollowing.com/babysteps/blog/2012/04/10/declared-vs-duckish-typing/ )
2012-04-11Translate slice-strings and make fixed-strings carry their null.Graydon Hoare-26/+35
2012-04-11Improve region code surrounding slice types.Graydon Hoare-82/+78
2012-04-11Add vstore/evec/estr to compiler.Graydon Hoare-60/+425
2012-04-10Generic classes and generic class methods work cross-crateTim Chevalier-58/+112
Classes can have ty params now. So can methods inside classes. That was probably true before, but now it should still work if you call methods in a class that's defined in a different crate. Yay!
2012-04-09make anything used in a resource body always reachableNiko Matsakis-1/+5
(they appear to be uncond. inlined) Fixes #2170.
2012-04-09rustc: External fns declared as fns not global variablesHaitao Li-4/+11
Issue #2167
2012-04-09rustc: Declare rust_start as a functionHaitao Li-3/+1
Issue #2167
2012-04-07Revert "Mangle exported names using node IDs rather than types"Brian Anderson-4/+4
This reverts commit c83d61de936f2910001fe72de01ac58479d90524.
2012-04-07Do not consider ty_bot to be a "resolved type".Niko Matsakis-2/+4
Fixes #2149. Fixes #2150. Fixes #2151.