about summary refs log tree commit diff
path: root/src/comp/metadata/tyencode.rs
AgeCommit message (Collapse)AuthorLines
2012-03-02Move src/comp to src/rustcGraydon Hoare-303/+0
2012-02-24Encode/decode AST into metadata, re-instantiate inlined itemsNiko Matsakis-7/+12
2012-02-15make mut a keyword synonymous with mutableNiko Matsakis-5/+5
first step towards issue #1273
2012-02-10use absolute names when pretty-printing typesNiko Matsakis-4/+4
2012-02-09Further WIP on classesTim Chevalier-0/+7
Changes to resolve and typeck. Still nothning working yet.
2012-02-09Remove some pointless importsMarijn Haverbeke-1/+0
2012-02-07Reuse monomorphized functions for different box typesMarijn Haverbeke-0/+1
The free glue for opaque boxes will pick the actual tydesc out of the box, and call its glue. Issue #1736
2012-02-06Make ty::t type self-sufficientMarijn Haverbeke-11/+10
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-06Self types for ifacesMarijn Haverbeke-0/+5
This allows a 'Name:' to appear in front of an iface declaration's name, which will cause 'Name' to refer to the self type (with the same number of type parameters as the iface has) in the method signatures of the iface. For example: iface F: functor<A> { fn fmap<B>(f: fn(A) -> B) -> F<B>; } Issue #1718
2012-02-05infer modes rather than overwriting with expected tyNiko Matsakis-5/+1
2012-02-01Remove support for native typesMarijn Haverbeke-5/+0
Issue #1673
2012-01-31Require alts to be exhaustiveTim Chevalier-0/+5
middle::check_alt does the work. Lots of changes to add default cases into alts that were previously inexhaustive.
2012-01-26Remove ty_native_fnMarijn Haverbeke-5/+0
It was being used as a clumsy synonym of ty_fn.
2012-01-25Rename tag to enum throughout the compilerMarijn Haverbeke-1/+1
This should reduce confusion of people trying to read the code.
2012-01-19rustc: ";" to "," in enumsPatrick Walton-1/+1
2012-01-19rustc: "tag" -> "enum"Patrick Walton-1/+1
2012-01-18Remove '.' after nullary tags in patternsTim Chevalier-45/+45
Does what it says on the tin. The next commit will remove support for this syntax.
2012-01-16Don't write out type names when hashing typesMarijn Haverbeke-3/+5
I hope this is why my patch made things so much slower...
2012-01-16Store type names in crate metadataMarijn Haverbeke-2/+9
Improves type error messages referring to external types. Issue #1507
2012-01-13distinguish "any closure" and "stack closure" (block)Niko Matsakis-4/+5
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-9/+0
Removes the obj system from the compiler. Closes #1484
2012-01-11Major clean-up of std::ioMarijn Haverbeke-12/+11
Use ifaces instead of objs, stop wrapping everything in two (or three) layers of no-value-added indirection, and remove some of the more pointless/outdated idioms from the code.
2012-01-10rename sendfn to fn~, lambda to fn@Niko Matsakis-5/+5
2012-01-09Remove proto_sugar and 'lambda' as keyword, commit to fn@.Graydon Hoare-1/+1
2012-01-06rejigger impl to have an opaque closure ptr rather thanNiko Matsakis-1/+3
opaque closure
2012-01-05Get external interfaces / impls workingMarijn Haverbeke-4/+3
Issue #1227
2012-01-02Check that type parameter bounds are interface typesMarijn Haverbeke-3/+10
Issue #1227
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-6/+17
Issue #1227
2011-12-23Use the same type of record in ty::ty_fn and ty::methodMarijn Haverbeke-12/+12
Removes some more code duplication.
2011-12-16extend with ty_send_type and ty_opaque_closureNiko Matsakis-0/+2
2011-12-14push changes through to get things compiling, if not running.Niko Matsakis-0/+1
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-2/+3
2011-12-07Change literal representation to not truncateMarijn Haverbeke-10/+18
Also shuffles around the organization of numeric literals and types, separating by int/uint/float instead of machine-vs-non-machine types. This simplifies some code. Closes #974 Closes #1252
2011-11-23Rollback return-by-referenceMarijn Haverbeke-5/+0
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-21rustc: Remove abi from ast::native_modHaitao Li-6/+1
2011-11-18Add a pass-by-copy parameter passing conventionMarijn Haverbeke-1/+2
This is intended to solve the problem of how to pass arguments to constructor functions -- you want to move in rvalues, but not have to explicitly copy stuff that is not an rvalue. The by-copy passing convention will ensure the callee gets its own copy of the value. For rvalues, it'll just pass off the value. For lvalues, it'll make a copy. Issue #1177
2011-11-18Preparation for kind system overhaulMarijn Haverbeke-3/+3
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-2/+1
2011-11-09rustc: Rename native_abi_c_stack_cdecl to native_abi_cdeclBrian Anderson-1/+1
2011-11-09rustc: Rename native_abi_c_stack_stdcall to native_abi_stdcallBrian Anderson-1/+1
2011-11-09Remove native "x86stdcall" ABIBrian Anderson-1/+0
2011-11-08Remove native "cdecl" ABIBrian Anderson-1/+0
2011-11-07Remove native "llvm" ABIBrian Anderson-1/+0
2011-11-07Remove native "rust" ABIBrian Anderson-1/+0
2011-10-21Drop support for iter, put, and for-eachMarijn Haverbeke-1/+0
Closes #1056
2011-10-20Merge ast::proto_shared and ast::proto_closureBrian Anderson-1/+1
Now they are both just proto_shared and proto_shared takes an argument indicating that it is sugared as 'lambda'
2011-10-20Rename ast::proto_fn to ast::proto_sharedBrian Anderson-1/+1
2011-10-11Use a non-ambiguous character for encoding bare functionsBrian Anderson-1/+1
I was using 'R' and that was already used for records. Issue #1022