about summary refs log tree commit diff
path: root/src/comp/middle/kind.rs
AgeCommit message (Collapse)AuthorLines
2012-03-02Move src/comp to src/rustcGraydon Hoare-282/+0
2012-02-29Delete-trailing-whitespaceMarijn Haverbeke-1/+1
2012-02-29Actually use last_use info on closed over var in kind.rsMarijn Haverbeke-4/+11
Issue ##1894
2012-02-15make mut a keyword synonymous with mutableNiko Matsakis-1/+1
first step towards issue #1273
2012-02-11core: Change the argument order for vec::contains, vec::countBrian Anderson-1/+1
2012-02-11core: Rename vec::member to vec::contains to match str modBrian Anderson-1/+1
2012-02-10Remove a vestige of return-by-referenceMarijn Haverbeke-1/+1
2012-02-09Remove some pointless importsMarijn Haverbeke-1/+0
2012-02-06Make ty::t type self-sufficientMarijn Haverbeke-6/+7
It is now no longer needed to have a ty::ctxt to get at the contents of a ty::t. The straight-forward approach of doing this, simply making ty::t a box type, unfortunately killed our compiler performance (~15% slower) through refcounting cost. Thus, this patch now represents ty::t as an unsafe pointer, assuming that the ty::ctxt, which holds these boxes alive, outlives any uses of the ty::t values. In the current compiler this trivially holds, but it is does of course add a new potential pitfall. ty::get takes a ty::t and returns a boxed representation of the type. I've changed calls to ty::struct(X) to do ty::get(X).struct. Type structs are full of vectors, and copying them every time we wanted to access them was a bit of a cost.
2012-02-05infer modes rather than overwriting with expected tyNiko Matsakis-1/+4
2012-01-31Require alts to be exhaustiveTim Chevalier-1/+3
middle::check_alt does the work. Lots of changes to add default cases into alts that were previously inexhaustive.
2012-01-31Don't consider references to nullary tag variants lvals in kind.rsMarijn Haverbeke-1/+16
This allows us to express option::map with noncopyable type parameters, which makes sense, since the type params aren't being copied (none doesn't contain any).
2012-01-30Remove ternary operatorPaul Woolcock-1/+0
`expr_ternary`, `ternary_to_if`, and all parses & lexer definitions have been removed.
2012-01-30Substitute type parameters more eagerlyMarijn Haverbeke-3/+2
This simplifies the typechecker a bit (no more ty_param_substs_opt_and_ty) and is needed for another experiment I'm playing with. I hope it also makes compilation faster (the bots will tell).
2012-01-23s/block()/fn()/gNiko Matsakis-1/+1
2012-01-18Remove '.' after nullary tags in patternsTim Chevalier-11/+11
Does what it says on the tin. The next commit will remove support for this syntax.
2012-01-13distinguish "any closure" and "stack closure" (block)Niko Matsakis-1/+1
2012-01-13deprecate fn exprs and the fn() type, preferring fn@ and native fnNiko Matsakis-1/+1
2012-01-13Obj system? What obj system?Marijn Haverbeke-2/+2
Removes the obj system from the compiler. Closes #1484
2012-01-12Make driver::session::session no longer an objectMarijn Haverbeke-0/+1
Rather, it is now a struct where properties like opts are accessed directly, and the error-reporting methods are part of a static impl (with the same name as the type).
2012-01-10rename sendfn to fn~, lambda to fn@Niko Matsakis-2/+2
2012-01-09Remove proto_sugar and 'lambda' as keyword, commit to fn@.Graydon Hoare-2/+2
2012-01-09Fix #1474: check that block args resolved to bare fns do not make use of upvarsNiko Matsakis-8/+13
2012-01-02Properly handle expression blocks in kind.rsMarijn Haverbeke-3/+10
It was only noticing them in expr_block form, not as function bodies. Closes #1390
2012-01-02More resolving and typechecking of bounded type parameters.Marijn Haverbeke-4/+4
Extern interfaces still don't get recognized. Issue #1227
2011-12-29split proto from fn_decl, as not all fn_decls know the proto.Niko Matsakis-4/+4
this will address the (crashing) new test added.
2011-12-28Move the kind datatype to middle::tyMarijn Haverbeke-3/+4
The AST no longer references it.
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-1/+3
Issue #1227
2011-12-23Go back to a single visit_fn function in visit.rsMarijn Haverbeke-4/+4
2011-12-22Unify some data structures in syntax::ast that were doing the same thingMarijn Haverbeke-2/+3
As a preparation to removing some duplication in typeck.
2011-12-21valid cap clause for kind-ness tooNiko Matsakis-12/+24
2011-12-21upgrade kind checkNiko Matsakis-12/+52
2011-12-19when collecting free vars, track the span where it is used tooNiko Matsakis-3/+3
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-1/+1
2011-12-16Get very simple impl method calls to compileMarijn Haverbeke-3/+7
Resolution is still dumb, and no self support yet.
2011-12-14push changes through to get things compiling, if not running.Niko Matsakis-14/+23
2011-12-14first attempt, not happy with itNiko Matsakis-1/+8
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-2/+2
2011-11-23Rollback return-by-referenceMarijn Haverbeke-15/+4
It's proving too inflexible, so I'm ripping out the extra complexity in the hope that regions will, at some point, provide something similar. Closes #918
2011-11-22Properly check for copies when constructing a record using withMarijn Haverbeke-1/+16
Closes #989
2011-11-18Add some comments to kind.rs and last_use.rsMarijn Haverbeke-0/+15
2011-11-18Implement a last-use-of-local finding algorithmMarijn Haverbeke-2/+5
Issue #925
2011-11-18Properly check kinds in instantiation of genericsMarijn Haverbeke-284/+27
Issue #1177
2011-11-18Prevent alias pass from inserting implicit copies for noncopyable typesMarijn Haverbeke-2/+0
Issue #1177
2011-11-18Overhaul the kind-checking passMarijn Haverbeke-31/+119
Not really useful yet because missing last-use-of-local optimization. Also: instantiation of type parameters needs to be checked. Issue #1177
2011-11-18Preparation for kind system overhaulMarijn Haverbeke-16/+16
This goes before a snapshot, so that subsequenct patches can make the transition without breaking the build. Disables kind checking pass, makes parser accept both new and old-style kind annotation. Issue #1177
2011-11-17remove compile-command from local variable blocksNiko Matsakis-1/+0
2011-11-10Cleanup unused importsHaitao Li-1/+1
2011-10-28Move to short type parameter keywordsMarijn Haverbeke-2/+2
Issue #1076
2011-10-25Update our code to new type parameter kind syntaxMarijn Haverbeke-4/+4
Closes #1067