aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
Commit message (Collapse)AuthorAgeFilesLines
* Reindented things and removed superfluous comments, nothing to see hereTim Chevalier2011-04-281-14/+7
|
* Fix some nested patterns in rustcTim Chevalier2011-04-281-0/+2
| | | | | | In rustc, nested patterns were potentially matching when they shouldn't match, because a loop index wasn't being incremented. Fixed it and added one test case.
* Fix bug in handling of expr_alt (postcond for alts was being intersected ↵Tim Chevalier2011-04-281-52/+102
| | | | with postcond for scrutinee)
* Fixed bug in typeck that wasn't filling in anns for stmtsTim Chevalier2011-04-282-8/+19
| | | | | | | (needed for typestate_check). Also changed a (log; fail) to (log_err; fail) in typestate_check, and added some more logging funs in util.common.
* Support all expression forms in typestateTim Chevalier2011-04-281-12/+198
| | | | | | | | | | | | Added support for self_method, cont, chan, port, recv, send, be, do_while, spawn, and ext; handled break and cont correctly. (However, there are no non-xfailed test cases for ext or spawn in stage0 currently.) Although the standard library compiles and all test cases pass with typestate enabled, I left typestate checking disabled as rustc terminates abnormally when building the standard library if so, even though it does generate code correctly.
* Further work on typestate_checkTim Chevalier2011-04-281-119/+343
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of work on typestate_check, seems to get a lot of the way through checking the standard library. * Added for, for_each, assign_op, bind, cast, put, check, break, and cont. (I'm not sure break and cont are actually handled correctly.) * Fixed side-effect bug in seq_preconds so that unioning the preconditions of a sequence of statements or expressions is handled correctly. * Pass poststate correctly through a stmt_decl. * Handle expr_ret and expr_fail properly (after execution of a ret or fail, everything is true -- this is needed to handle ifs and alts where one branch is a ret or fail) * Fixed bug in set_prestate_ann where a thing that needed to be mutated wasn't getting passed as an alias * Fixed bug in how expr_alt was treated (zero is not the identity for intersect, who knew, right?) * Update logging to reflect log_err vs. log * Fixed find_locals so as to return all local decls and exclude function arguments. * Make union_postconds work on an empty vector (needed to handle empty blocks correctly) * Added _vec.cat_options, which takes a list of option[T] to a list of T, ignoring any Nones * Added two test cases.
* Actually perform take/drop on args (oh my!)Graydon Hoare2011-04-281-4/+36
|
* Use cnames when present in ty.ty_to_str.Graydon Hoare2011-04-271-10/+10
|
* Cache sha1 values of types, use seq-based mangling for glue as it's private ↵Graydon Hoare2011-04-271-10/+17
| | | | anyways.
* Partly disable simplified-type glue optimization due to compile-time cost.Graydon Hoare2011-04-271-1/+11
|
* rustc: Ignore the return value of native functions that return nil. stage1 ↵Patrick Walton2011-04-261-1/+10
| | | | can build libstd now, though it leaks.
* rustc: Actually write the optimized bitcode when --save-temps is onPatrick Walton2011-04-261-12/+13
|
* Speed up calls to get_tydesc and kill cname-redundant glue generation.Graydon Hoare2011-04-261-16/+29
|
* Merge branch 'master' of ssh://github.com/graydon/rustGraydon Hoare2011-04-261-1/+3
|\
| * rustc: Cap ridiculous type name sizesPatrick Walton2011-04-261-1/+3
| |
* | Various bits of trans lint, nothing major.Graydon Hoare2011-04-261-25/+36
|/
* rustc: Add a missing return value to Collect.ty_of_item()Patrick Walton2011-04-251-1/+3
|
* A little more guarding against wasted work in ty, typeck.Graydon Hoare2011-04-252-2/+19
|
* rustc: Use the abbreviated type names to avoid LLVM bitcode size explosionPatrick Walton2011-04-253-5/+11
|
* Kick ty_var and ty_local entries out of the type store. Pre-compute presence ↵Graydon Hoare2011-04-252-72/+183
| | | | of var, local, param and bound_params in types.
* rustc: Add a -save-temps option to save bitcode and write output ↵Patrick Walton2011-04-251-6/+49
| | | | simultaneously; document command line switches
* rustc: Pass a "type context" around instead of directly passing the type ↵Patrick Walton2011-04-254-783/+738
| | | | store; prep for removing type annotations
* Avoid type_store hashtable access for a variety of cases, probably only ↵Graydon Hoare2011-04-252-45/+168
| | | | ty_var matters.
* Skip substitution and/or binding when there's no work to do.Graydon Hoare2011-04-251-0/+34
|
* Bind tag members as aliases rather than new locals.Graydon Hoare2011-04-251-19/+18
|
* Fix busted iter/put code. Un-XFAIL foreach-box-drop.rs.Graydon Hoare2011-04-231-95/+94
|
* 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
|
* rustc: Thread the type store through everything that needs to access type ↵Patrick Walton2011-04-224-382/+411
| | | | structures
* rustc: Move the type serialization logic to an Encode modulePatrick Walton2011-04-222-97/+108
|
* rustc: Remove direct access to the cname field of typesPatrick Walton2011-04-221-4/+7
|
* rustc: Switch @ty.t to ty.t so that we can change it to a uintPatrick Walton2011-04-224-414/+415
|
* rustc: Eliminate the direct use of ty.t.structPatrick Walton2011-04-224-110/+117
|
* Dispose the module.Rafael Ávila de Espíndola2011-04-221-0/+1
| | | | Thanks to brson for noticing it.
* rustc: Add a fast path when the types to be unified are exactly equalPatrick Walton2011-04-221-0/+3
|
* rustc: Add a fast path if there are no type substitutions to be madePatrick Walton2011-04-221-2/+8
|
* rustc: Improve the efficiency of lookup_item_type() slightlyPatrick Walton2011-04-221-7/+7
|
* rustc: Intern typesPatrick Walton2011-04-213-331/+73
|
* Fix the signature of expr_extBrian Anderson2011-04-212-4/+4
| | | | The extension body is just a string, not an expression.
* rustc: Add a shallow type equality function, not used yetPatrick Walton2011-04-211-0/+321
|
* rustc: Pass a type store around, which does nothing yetPatrick Walton2011-04-214-392/+547
|
* rustc: Get rid of boring_ann(); it duplicates plain_ann()Patrick Walton2011-04-211-17/+14
|
* rustc: Create a unification contextPatrick Walton2011-04-211-99/+75
|
* rustc: Move ty.unify to a separate namespacePatrick Walton2011-04-212-46/+50
|
* Change ty.eq_ty to avoid stringification.Graydon Hoare2011-04-211-43/+304
|
* rustc: Create an item collection context during typechecking; move ↵Patrick Walton2011-04-201-170/+136
| | | | collection to a module
* Fix walk bug that coupled with marijns work to regress stage1.Graydon Hoare2011-04-201-4/+3
|
* rustc: Add a type unification cachePatrick Walton2011-04-201-3/+63
|
* rustc: Define type hashing inductivelyPatrick Walton2011-04-201-12/+97
|
* rustc: Precompute type hashesPatrick Walton2011-04-202-39/+56
|