aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/ty.rs
Commit message (Collapse)AuthorAgeFilesLines
* rustc: Write nil types into the node type table wherever plain_ann() is usedHEADmasterPatrick Walton2011-05-131-0/+6
|
* More work toward anonymous objects.Lindsey Kuper2011-05-131-1/+0
|
* More progress on anonymous objects.Lindsey Kuper2011-05-131-0/+2
| | | | Still segfaulting on the method-overriding.rs test, though.
* rustc: Move replace_expr_type() from ty to typeck, as it's only used in the ↵Patrick Walton2011-05-131-44/+0
| | | | latter
* rustc: Get ann_to_type_params() on board the ↵Patrick Walton2011-05-131-7/+7
| | | | ann_to_ty_param_substs_opt_and_ty() train
* rustc: Make all type lookups go through the one ↵Patrick Walton2011-05-131-44/+22
| | | | ty::ann_to_ty_param_substs_opt_and_ty() function
* rustc: Change ty::triv_ann() to take a node ID instead of a full annotationPatrick Walton2011-05-131-2/+2
|
* rustc: Add write_type() wherever ann_types are written, except for triv_ann()Patrick Walton2011-05-131-1/+14
|
* rustc: Fix the type of node_types; stub the write_type functionPatrick Walton2011-05-131-1/+2
|
* Extend crate format to allow multiple definitions for a single nameMarijn Haverbeke2011-05-131-0/+1
| | | | | The type/value namespace distinction pretty much works now. Module namespace is up next.
* rustc: Flatten recursive vectors in trans::simplify_type(). Prevents an ↵Patrick Walton2011-05-121-0/+5
| | | | infinite loop.
* rustc: Make ty::expr_ann() terserPatrick Walton2011-05-121-109/+37
|
* rustc: Pass a node type table around, unused as of yetPatrick Walton2011-05-121-27/+36
|
* Downcase std modules again, move to :: for module dereferencingMarijn Haverbeke2011-05-121-399/+401
| | | | This should be a snapshot transition.
* Change module dereference syntax from . to ::Marijn Haverbeke2011-05-121-1/+1
| | | | This will need to be a snapshot.
* Keep resolve data in external hash table, rather than embedded defsMarijn Haverbeke2011-05-121-6/+8
| | | | | | | | | | | | | One step closer to removing fold and having a single, immutable AST. Resolve still uses fold, because it has to detect and transform expr_field expressions. If we go through on our plan of moving to a different syntax for module dereferencing, the parser can spit out expr_field expressions, and resolve can move to walk. (I am truly sorry for the things I did in typestate_check.rs. I expect we'll want to change that to walk as well in the near future, at which point it should probably pass around a context record, which could hold the def_map.)
* Ensure ann tags are actually kept around during typecheckingMarijn Haverbeke2011-05-121-22/+25
| | | | | | This way, the tag assigned by the parser stays with the node. I realize ann replacing is probably going away real soon, but I needed this now for moving the resolve defs out of the AST.
* rustc: Represent types as uints. Cuts typechecking down from 14s to 12s.Patrick Walton2011-05-111-148/+143
|
* rustc: Remove a few kludges intended to work around rustboot's lack of ↵Patrick Walton2011-05-111-74/+4
| | | | structural comparison from equal_type_structures()
* rustc: Remove magic numbers; they aren't a winPatrick Walton2011-05-111-40/+3
|
* rustc: Intern all types. 4s regression.Patrick Walton2011-05-111-17/+1
|
* rustc: Lower the size limit on ty_to_short_str() and always call it in favor ↵Patrick Walton2011-05-101-1/+1
| | | | of direct calls to metadata.Encode.ty_str() in trans
* rustc: Number everything with an annotationPatrick Walton2011-05-101-4/+4
|
* rustc: Cache intermediate results of metadata.Encode.ty_str. Shaves 30% off ↵Patrick Walton2011-05-101-2/+5
| | | | translation time.
* Alias-ify walk, typeck, metadata. Cuts another 80kb off rustc.Graydon Hoare2011-05-091-1/+1
|
* rustc: Alias fix part 2 -- Check that the aliasness of function parameters ↵Patrick Walton2011-05-091-6/+9
| | | | matches. Add a test case.
* Alias-ify a variety of fn signatures in ty. Cuts 180kb off rustc.Graydon Hoare2011-05-091-112/+114
|
* rustc: Alias fix part 1 -- Separate out AST modes from typechecker modes, ↵Patrick Walton2011-05-091-37/+18
| | | | and introduce an "either value or alias" mode
* Rename std modules to be camelcasedMarijn Haverbeke2011-05-061-96/+96
| | | | (Have fun mergining your stuff with this.)
* Consolidating expr_to_str functions.Lindsey Kuper2011-05-051-1/+1
|
* rustc: Fix bug in equal_abi that was preventing Rust intrinsics from workingPatrick Walton2011-05-051-0/+6
|
* Remove 'deprecated mutable...' from our codeMarijn Haverbeke2011-05-051-6/+6
| | | | This should make compilation a bit less noisy.
* rustc: Refactor metadata.Encode.* to not require a type abbreviation table ↵Patrick Walton2011-05-031-3/+2
| | | | if abbreviation isn't enabled
* rustc: Remove the artificial block in ty.rs. Fixes self-hosting. Add a test ↵Patrick Walton2011-05-021-1/+1
| | | | case for this, XFAIL'd.
* Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton2011-05-021-67/+120
| | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
* Revert "Use different syntax for checks that matter to typestate"Graydon Hoare2011-05-021-120/+67
| | | | This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
* Use different syntax for checks that matter to typestateTim Chevalier2011-05-021-67/+120
| | | | | | | | | | This giant commit changes the syntax of Rust to use "assert" for "check" expressions that didn't mean anything to the typestate system, and continue using "check" for checks that are used as part of typestate checking. Most of the changes are just replacing "check" with "assert" in test cases and rustc.
* Intern metadata while writing, shrink stage1 from 12mb to 5.7mb.Graydon Hoare2011-04-291-4/+26
|
* Consider unop deref as an lval. Un-XFAIL vec-push.Graydon Hoare2011-04-281-0/+1
|
* Add a session field to ty_ctxt and change an err to span_errTim Chevalier2011-04-281-2/+2
| | | | | | | I changed instantiate to print out a more helpful error message, which required passing it a session argument. To avoid threading extra arguments through a lot of functions, I added a session field to ty_ctxt.
* Use cnames when present in ty.ty_to_str.Graydon Hoare2011-04-271-10/+10
|
* rustc: Cap ridiculous type name sizesPatrick Walton2011-04-261-1/+3
|
* A little more guarding against wasted work in ty, typeck.Graydon Hoare2011-04-251-2/+11
|
* rustc: Use the abbreviated type names to avoid LLVM bitcode size explosionPatrick Walton2011-04-251-0/+6
|
* Kick ty_var and ty_local entries out of the type store. Pre-compute presence ↵Graydon Hoare2011-04-251-66/+176
| | | | of var, local, param and bound_params in types.
* rustc: Pass a "type context" around instead of directly passing the type ↵Patrick Walton2011-04-251-281/+269
| | | | store; prep for removing type annotations
* Avoid type_store hashtable access for a variety of cases, probably only ↵Graydon Hoare2011-04-251-19/+128
| | | | ty_var matters.
* Skip substitution and/or binding when there's no work to do.Graydon Hoare2011-04-251-0/+34
|
* rustc: Use a silly "magic numbers" hack; seems to speed things up a bit.Patrick Walton2011-04-221-2/+41
|
* rustc: Include the cname in the hash to increase entropyPatrick Walton2011-04-221-1/+10
|