aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
Commit message (Collapse)AuthorAgeFilesLines
* rustc: Change ty::triv_ann() to take a node ID instead of a full annotationPatrick Walton2011-05-132-85/+118
|
* rustc: lowercase the link and link::write modulesBrian Anderson2011-05-131-2/+2
|
* Slight adjustments to shape, rename to type_glue.rs.Graydon Hoare2011-05-132-98/+104
|
* rustc: Add write_type() wherever ann_types are written, except for triv_ann()Patrick Walton2011-05-132-15/+56
|
* rustc: Fix the type of node_types; stub the write_type functionPatrick Walton2011-05-132-7/+16
|
* rustc: Remove a minor rustboot workaround in ↵Patrick Walton2011-05-131-9/+4
| | | | typeck::resolve_local_types_in_block()
* rustc: Make typeck::instantiate_path() not return an annotationPatrick Walton2011-05-131-9/+16
|
* Implement module namespacesMarijn Haverbeke2011-05-131-70/+72
| | | | | | | Module names no longer clash with type and value names. The tokenizer/parser still needs to be taught to be more careful in identifying keywords, so that we can use 'str' and 'vec' and so as module names.
* Extend crate format to allow multiple definitions for a single nameMarijn Haverbeke2011-05-133-31/+34
| | | | | The type/value namespace distinction pretty much works now. Module namespace is up next.
* Make module indices hold a list of itemsMarijn Haverbeke2011-05-131-42/+87
| | | | | This way, they can support having both a type and a value of the same name.
* Move capture checking into resolve.rsMarijn Haverbeke2011-05-133-134/+49
| | | | | Drops capture.rs. The new algorithm also checks for captures function arguments and obj fields.
* Change resolve to use walk instead of foldMarijn Haverbeke2011-05-131-100/+162
| | | | | | Possibly, at some point, we should add a state-passing variant of walk, or a wrapper that makes it easier to thread state. (See the repetetive pop_state_for_* functions in this commit.)
* Ensure visit_ty is called on type parameters during walkMarijn Haverbeke2011-05-131-2/+25
|
* Add visit_arm and visit_method to walk.rsMarijn Haverbeke2011-05-131-3/+16
| | | | | The resolver needs to update its state for individual arms and methods.
* rustc: Flatten recursive vectors in trans::simplify_type(). Prevents an ↵Patrick Walton2011-05-122-0/+8
| | | | infinite loop.
* rustc: Beginnings of a "shape" module to convert types to shapesPatrick Walton2011-05-121-0/+98
|
* rustc: Make ty::expr_ann() terserPatrick Walton2011-05-121-109/+37
|
* rustc: Pass a node type table around, unused as of yetPatrick Walton2011-05-123-152/+214
|
* Add stats option and lazily emit glue.Graydon Hoare2011-05-121-86/+264
|
* Downcase std modules again, move to :: for module dereferencingMarijn Haverbeke2011-05-129-4250/+4276
| | | | This should be a snapshot transition.
* Change module dereference syntax from . to ::Marijn Haverbeke2011-05-124-51/+9
| | | | This will need to be a snapshot.
* Keep resolve data in external hash table, rather than embedded defsMarijn Haverbeke2011-05-128-447/+467
| | | | | | | | | | | | | 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-124-198/+212
| | | | | | 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.
* Provide a more useful message when failing to translate a constMarijn Haverbeke2011-05-121-0/+3
|
* 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: Hoist derived type descriptors to the top of the functionPatrick Walton2011-05-111-69/+120
|
* Remove mod indices from the ASTMarijn Haverbeke2011-05-113-54/+138
| | | | | They are now created by the resolve pass, which is the only pass that needs them, and kept internal to that pass.
* Get rid of arm indicesMarijn Haverbeke2011-05-114-12/+23
|
* Get rid of block indicesMarijn Haverbeke2011-05-114-61/+49
|
* Stop depending on block indices in capture.rsMarijn Haverbeke2011-05-111-5/+9
|
* Hash only on def_num when storing def_ids that are localMarijn Haverbeke2011-05-111-13/+14
|
* Use a const for crate-num-zero (ast.local_crate)Marijn Haverbeke2011-05-111-2/+1
|
* Cache external crate lookups in resolve.rsMarijn Haverbeke2011-05-111-6/+28
| | | | | | According to --time-passes, resolution went from 2 to 0 seconds. Not really the bottleneck... but if we want to be crazy fast, just consider this a future bottleneck that was fixed very timely.
* Rewrite comp/middle/resolve.rsMarijn Haverbeke2011-05-114-641/+549
| | | | | | | | | * Cleans up the algorithm * Move first pass to walk (second still folds) * Support part of a type/value namespace split (crate metadata and module indices still need to be taught about this) * Remove a few blatant inefficiencies (import tables being recreated for every lookup, most importantly)
* More alias-ification of trans.Graydon Hoare2011-05-111-279/+285
|
* rustc: Don't interleave allocas with stores when copying arguments to allocasPatrick Walton2011-05-101-11/+7
|
* Begin alias-ifying trans.Graydon Hoare2011-05-101-82/+82
|
* Avoid mangle_name_by_type_only call in tydesc names unless debugging.Graydon Hoare2011-05-101-1/+8
|
* rustc: Lower the size limit on ty_to_short_str() and always call it in favor ↵Patrick Walton2011-05-102-2/+2
| | | | of direct calls to metadata.Encode.ty_str() in trans
* rustc: Number everything with an annotationPatrick Walton2011-05-104-26/+26
|
* Only name LLVM values / blocks / types when saving temporaries.Graydon Hoare2011-05-101-17/+27
|
* rustc: Cache intermediate results of metadata.Encode.ty_str. Shaves 30% off ↵Patrick Walton2011-05-103-3/+22
| | | | translation time.
* Switch memcpy to memmove since we're willing to compile x = x and such.Graydon Hoare2011-05-101-18/+17
|
* rustc: Get rid of native Rust glue for all upcalls except the exit task gluePatrick Walton2011-05-101-124/+105
|
* Re-enable use of llvm intrinsics for memcpy, memset. Should have aligned ↵Graydon Hoare2011-05-101-106/+77
| | | | stack now.
* Fix long lines in fold.rs, typeck.rsBrian Anderson2011-05-092-2/+4
|
* Alias-ify fold and its users, remove another 85kb.Graydon Hoare2011-05-094-351/+371
|