about summary refs log tree commit diff
path: root/src/comp/middle/kind.rs
AgeCommit message (Collapse)AuthorLines
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
2011-10-21Change the way block calls are parsed, mark them as block-calls.Marijn Haverbeke-2/+2
This makes it possible to omit the semicolon after the block, and will cause the pretty-printer to properly print such calls (if pretty-printing of blocks wasn't so broken). Block calls (with the block outside of the parentheses) can now only occur at statement level, and their value can not be used. When calling a block-style function that returns a useful value, the block must be put insde the parentheses. Issue #1054
2011-09-28Don't allow vectors of pinned kindsBrian Anderson-0/+10
Vectors of pinned kinds can't be safe because most interesting uses of vector perform copies
2011-09-27Make it again possible to initialize resource locals via assignmentBrian Anderson-6/+10
Some special cases allow both 'let a <- my_resource(x)' and 'let a = my_resource(x)' to work as expected despite ostensibly being copies and moves.
2011-09-27Prevent copies of resources into various thingsBrian Anderson-0/+67
2011-09-27Add more comments about kind checking on local move initializersBrian Anderson-1/+3
2011-09-27Don't ever raise unique kinds of pinned kinds to shared (again)Brian Anderson-21/+4
So *resource, ~resource, [resource] are all pinned. This is counter to the design of the kind system, but this way is a much clearer path to type safety. Once we've established a good baseline with lots of tests, then we can try to make raising pinned kinds work.
2011-09-26Enforce copy restrictions on let initializersBrian Anderson-1/+21
2011-09-26Prevent copying of uncopyable things via the copy opBrian Anderson-0/+1
2011-09-26Prevent copying of uncopyable things via compound assignment opsBrian Anderson-1/+4
2011-09-26Don't allow vectors of pinned kinds to be copiedBrian Anderson-0/+4
2011-09-26Don't allow copying of unique boxes of pinned kindsBrian Anderson-19/+32
Issue #409
2011-09-25Refine notes in kind.rs some more. Add a fixme to ty.rs.Graydon Hoare-16/+36
Kinds are still pretty wobbly. See thread starting at https://mail.mozilla.org/pipermail/rust-dev/2011-September/000807.html
2011-09-12Factor imports mindlessly.Graydon Hoare-13/+3
2011-09-12Reformat for new mode syntax, step 1Marijn Haverbeke-7/+6
Long lines were fixed in a very crude way, as I'll be following up with another reformat in a bit.
2011-09-02Reformat. Issue #855Brian Anderson-20/+19
2011-09-01Convert all uses of #ifmt to #fmt. Issue #855Brian Anderson-3/+3
2011-09-01Rename std::istr to std::str. Issue #855Brian Anderson-1/+1
2011-08-31Convert uses of #fmt to #ifmt. Issue #855Brian Anderson-13/+13
2011-08-27Convert misc compiler bits to istrs. Issue #855Brian Anderson-14/+15
2011-08-27Convert rustc::driver::session to istrs. Issue #855Brian Anderson-2/+2
2011-08-27Convert rustc::util to istrs. Issue #855Brian Anderson-3/+4
2011-08-23Add kind-checking for assign-op, copy, ret, be, fail exprs. Fix caught ↵Graydon Hoare-0/+14
kinding-violations in rustc and libstd.
2011-08-22Move functions from syntax::ast to syntax::ast_utilBrian Anderson-1/+3
This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer
2011-08-20ReformatBrian Anderson-28/+23
This changes the indexing syntax from .() to [], the vector syntax from ~[] to [] and the extension syntax from #fmt() to #fmt[]
2011-08-16Rename std::ivec to std::vecBrian Anderson-3/+3
2011-07-29Enable kind checking on typarams, fix kind constraints in library and comp.Graydon Hoare-4/+27
2011-07-29Encode, decode, and thread through typechecking all the param kinds, not ↵Graydon Hoare-0/+5
just the counts.
2011-07-27Fix stale 'copy' occurrences to 'move' in comments.Graydon Hoare-2/+2
2011-07-28Remove walk instance from kind.rsMarijn Haverbeke-5/+5
2011-07-27Further refinement to kind system lattice and type-kind rules; first ↵Graydon Hoare-20/+54
successful caught kind error (prohibits copying a pinned resource, though trans already caught it later).
2011-07-27Remove vestiges of "layers", insert skeletal do-nothing "kind" pass plus ↵Graydon Hoare-0/+128
cached calculation of kind for each type.