aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
Commit message (Collapse)AuthorAgeFilesLines
* Guh. Actually commit the staged undo-of-indentation. Forgotten git staging ↵Graydon Hoare2011-04-011-56/+56
| | | | wins again.
* Switch private linkage to local, re-indent trans.rs.Graydon Hoare2011-04-011-70/+70
|
* rustc: Write symbols for native items into the crate metadataPatrick Walton2011-04-011-0/+1
|
* rustc: Don't try to write symbols into the metadata for nullary tags. Puts ↵Patrick Walton2011-04-011-1/+3
| | | | out burning tinderbox.
* rustc: Get tag variants from the crate metadataPatrick Walton2011-04-012-10/+28
|
* rustc: Have tag_variants() return a new variant_info structure instead of an ↵Patrick Walton2011-04-011-37/+40
| | | | AST node
* Started adding support for typestate checking.Tim Chevalier2011-04-015-197/+685
| | | | | | | | | | | | | | | I added a new field to the ast "ann" type for typestate information. Currently, the field contains a record of a precondition bit vector and postcondition vector, but I tried to structure things so as to make it easy to change the representation of the typestate annotation type. I also had to add annotations to some syntactic forms that didn't have them before (fail, ret, be...), with all the boilerplate changes that that would imply. The main call to the typestate_check entry point is commented out and the actual pre-postcondition algorithm only has a few cases implemented, though the overall AST traversal is there. The rest of the typestate algorithm isn't implemented yet.
* rustc: Remove useless call to tag_variant_with_id()Patrick Walton2011-04-011-1/+0
|
* Cleanup typos and newlinesBrian Anderson2011-04-011-1/+1
|
* Initialize the alloca used to retrieve boxed block results to null.Brian Anderson2011-03-311-11/+19
| | | | | | | | This allows blocks to be used in conditional constructs where the block may not ever execute: the drop glue will notice that it was never used and ignore it. Also, beef up the comments.
* Only use allocas to hold expression results for boxed typesBrian Anderson2011-03-311-18/+3
|
* Add more comments to trans_blockBrian Anderson2011-03-311-1/+2
|
* Modify trans.rs to allow blocks to result in boxed valuesBrian Anderson2011-03-311-0/+59
|
* rustc: Add a type annotation to tag itemsPatrick Walton2011-03-316-31/+29
|
* rustc: Make tag_ty_params() and substitute_ty_params() take def ids instead ↵Patrick Walton2011-03-312-10/+6
| | | | of ty_params, and to check in external crates
* rustc: Write out a path index as wellPatrick Walton2011-03-311-59/+117
|
* More stuff to go with the new expr_call_self AST nodeLindsey Kuper2011-03-311-0/+68
|
* More machinery for adding an expr_call_self AST node.Lindsey Kuper2011-03-311-1/+18
|
* rustc: Index only the local part of definition IDsPatrick Walton2011-03-311-16/+21
|
* rustc: Write out an index of definition info in crate metadataPatrick Walton2011-03-311-30/+100
|
* rustc: Use the scaled index, not the raw index, if a vector has generic ↵Patrick Walton2011-03-311-2/+12
| | | | size. lib-vec.rs works now.
* Rename incr_all_refcnts to take_ty, to match drop_tyBrian Anderson2011-03-311-4/+4
|
* Restore scope block contexts to the translation of expr_block.Brian Anderson2011-03-311-2/+20
| | | | | I removed this previously but that was wrong because it caused block expressions to not create a new scope.
* Improve line comment positioningMarijn Haverbeke2011-03-315-40/+42
| | | | This involved making ast.variant spanned.
* Add effect field to ast.ty_fn.Marijn Haverbeke2011-03-312-12/+13
| | | | Still not used, except by the pretty-printer.
* rustc: Use the type cache to construct external item referencesPatrick Walton2011-03-301-19/+38
|
* rustc: Thread an item-to-type mapping throughout the typechecking and ↵Patrick Walton2011-03-306-344/+353
| | | | translation phases
* Ensure task stacks start out with a 16-byte aligned entry frame. Should make ↵Graydon Hoare2011-03-301-1/+2
| | | | OSX behave a bit better.
* rustc: Add all items to the item table during translation. lib-vec now ↵Patrick Walton2011-03-291-1/+16
| | | | compiles, but asserts and then segfaults.
* rustc: Parse parameter IDs in external crate metadata. Un-XFAIL lib-bitv.rs.Patrick Walton2011-03-291-1/+1
|
* rustc: Partially resolve external module importsPatrick Walton2011-03-291-4/+88
|
* Beginnings of support for magical self prefix; nothing profound happening yet.Lindsey Kuper2011-03-292-0/+8
|
* rustc: Resolve external modules and native modules to definition IDs as wellPatrick Walton2011-03-291-6/+14
|
* Rename trans_native to trans_native_call, for clarity.Graydon Hoare2011-03-291-10/+10
|
* Teach trans to emit undefined references to 'use'd symbols. Can compile and ↵Graydon Hoare2011-03-291-0/+21
| | | | run a simple 'use std;' example now.
* Add partial support for if expressions resulting in generic typesBrian Anderson2011-03-281-4/+7
|
* Handle structural types as the result of if expressionsBrian Anderson2011-03-281-0/+3
|
* Teach rustc to use the result of if expressionsBrian Anderson2011-03-281-4/+13
|
* Add expr_spawn, spawn parsing, folding, typechecking, ty_taskBrian Anderson2011-03-283-16/+77
|
* Move all allocas to dedicated basic block at top of function, to keep frames ↵Graydon Hoare2011-03-281-56/+141
| | | | finite. Un-comment next size in nbody.rs.
* rustc: Populate the item types table with types of items from external ↵Patrick Walton2011-03-281-10/+42
| | | | crates; remove the redundant typeck.ty_and_params type on the way
* rustc: Remove commented out "encode_tag_variant_info" call that sneaked inPatrick Walton2011-03-281-1/+1
|
* rustc: Don't include a trailing null when writing out metadata; it corrupts ↵Patrick Walton2011-03-281-4/+5
| | | | the EBML
* Fix get_tydesc to alloca enough room for root; remove hack that was ↵Graydon Hoare2011-03-281-8/+3
| | | | attempting to paper over it. Fix from espindola.
* rustc: Add support for calling LLVM intrinsics as native functionsPatrick Walton2011-03-282-8/+35
|
* Add support for break and cont to rustcMarijn Haverbeke2011-03-273-9/+104
| | | | | Testing proper cleanup is hampered by https://github.com/graydon/rust/issues/293
* Twiddle visibility, start exposing only type-mangled names (64 bit truncated ↵Graydon Hoare2011-03-261-17/+21
| | | | sha1 prefixes).
* Start refactoring name-mangling in trans.Graydon Hoare2011-03-261-43/+90
|
* Teach creader and metadata writer how to do ty.ty_type.Graydon Hoare2011-03-261-1/+11
|
* Add get_extern_const, factor get_extern into get_extern_fn and ↵Graydon Hoare2011-03-251-6/+23
| | | | get_simple_extern_fn.