about summary refs log tree commit diff
path: root/src/rustc
AgeCommit message (Collapse)AuthorLines
2012-06-15Handle index expressions' callee IDs correctlyTim Chevalier-4/+4
Some code that handles unary and binary exprs' callee IDs was forgetting to handle the index expr case (since calls to user-defined index operators also have callee IDs). This was manifesting as an ICE in trans because when monomorphizing a function that had one of these operators in it (an index into a dvec, in the test case), the callee ID would be unbound to a type. Fixed it. Closes #2631.
2012-06-15Add an intermediate level of type/region variable resolution forcingLindsey Kuper-24/+49
And change structurally_resolved_type() to force resolution of non-region variables.
2012-06-15Add the interner to parse_sess.Paul Stansifer-25/+5
2012-06-15Make type_is_pod handle more types.Michael Sullivan-2/+11
2012-06-14Issue #2591: Fix "upvar" jargon in borrowck error messagesPatrick Walton-3/+5
2012-06-14Merge branch 'incoming' of github.com:mozilla/rust into newsnapEric Holk-125/+187
2012-06-14Merge branch 'incoming' into newsnapEric Holk-22/+45
2012-06-14Further work on integer literal suffix inference (#1425)Lindsey Kuper-125/+187
In this commit: * Change the lit_int_unsuffixed AST node to not carry a type, since it doesn't need one * Don't print "(unsuffixed)" when pretty-printing unsuffixed integer literals * Just print "I" instead of "(integral)" for integral type variables * Set up trans to use the information that will be gathered during typeck to construct the appropriate constants for unsuffixed int literals * Add logic for handling int_ty_sets in typeck::infer * Clean up unnecessary code in typeck::infer * Add missing mk_ functions to middle::ty * Add ty_var_integral to a few of the type utility functions it was missing from in middle::ty
2012-06-14Complete a data visitor type that does proper pointer-walking.Graydon Hoare-22/+45
2012-06-14Merge branch 'incoming' into newsnapEric Holk-76/+193
2012-06-14Issue #2572: (trans) Fix self-referential classes.Patrick Walton-19/+48
2012-06-14whitespaceTim Chevalier-1/+1
2012-06-14Get an initial implementation of boxed vectors working.Michael Sullivan-40/+71
2012-06-14Avoid some duplicated typechecking workTim Chevalier-5/+18
There was a FIXME noting that ty::enum_variants and typeck::check:: check_enum_variants both call eval_const_expr. I tried refactoring the code so that check_enum_variants does all the work and enum_variants just looks up cached results, but this turned out not to be easy because several ty functions call enum_variants and it might get invoked on an enum before that enum item has been typechecked. Instead, I just made check_enum_variants update the enum_var_cache so that enum_variants will never call eval_const_expr twice on the same const.
2012-06-14Add zero check/fail paths on div/mod paths. Close #944.Graydon Hoare-11/+54
2012-06-14Comments only: annotate FIXMEs in reflectTim Chevalier-1/+2
2012-06-14Adding move_val and move_val_init intrinsics.Eric Holk-1/+29
2012-06-14Remove a workaroundTim Chevalier-2/+2
2012-06-14Refactor; annotate a FIXMETim Chevalier-25/+17
2012-06-14Comments only: annotate FIXMEs in typeck::inferTim Chevalier-1/+2
2012-06-14Comments only: annotate a FIXME and remove an obsolete oneTim Chevalier-2/+2
2012-06-14Annotate and fix FIXMEs in typeckTim Chevalier-41/+40
2012-06-14Dead code eliminationTim Chevalier-38/+4
2012-06-13Make trans only generate calls to the _dyn malloc upcalls, so we can get rid ↵Michael Sullivan-43/+24
of the non dyn ones.
2012-06-13Add a malloc_dyn upcall for dynamically sized allocations on the shared heap.Michael Sullivan-0/+4
2012-06-13Allow impls to be re-exportedTim Chevalier-5/+9
It was a little hard for me to believe, but it seems that re-exporting an impl doesn't work at a, because encoder::encode_info_for_mod requires that all the impls in the current module's impl map be local (that is, bound to a value in the current crate's item map). Fixed it. Closes #2414.
2012-06-13Traverse types in reachabilityTim Chevalier-1/+27
Issue 2526 showed a test case where a library exported only a type that was a synonym for a class. Because the class's destructor wasn't getting marked as reachable, its linkage was wrongly getting set to "internal". The solution is for reachability to traverse types. Closes #2526.
2012-06-13Box AST identsBrian Anderson-371/+380
2012-06-13Some cleanup in tvec.Michael Sullivan-9/+6
2012-06-12Handle class destructors correctly in metadataTim Chevalier-24/+83
This allows destructors to be inlined, which is necessary since classes can have both ty params and destructors.
2012-06-12Simplify a bunch of trans functions to not need the rust type. Remove some ↵Michael Sullivan-66/+33
PointerCasts.
2012-06-12Make vectors contain the right type descriptor. Closes #2536.Michael Sullivan-17/+12
2012-06-12Introduce an unboxed_vec typeMichael Sullivan-11/+34
2012-06-12Introduce a SHAPE_UNBOXED_VEC shape in order to seperate out vector logic.Michael Sullivan-3/+9
2012-06-12Correct typo in commentTim Chevalier-1/+1
2012-06-12Change trans::common::block to be a classTim Chevalier-60/+69
And replace trans::common::block_parent with option<block>. To handle the recursive self-reference in the block_ class, I had to add a newtype-like enum "block" which is equivalent to @block_ -- which due to an interaction with borrowck, resulted in having to change a few functions in trans::base to take their block argument in ++ mode, irritatingly enough (but not that irritatingly, since we're supposed to get rid of modes).
2012-06-12Treat enums with one variant specially in borrowck: #2573Niko Matsakis-33/+85
2012-06-12Reorder things in hash_type_structure to make more sense.Michael Sullivan-10/+10
2012-06-11Change llsize_real to use LLVMSizeOfTypeInBits. Add comments.Graydon Hoare-10/+52
2012-06-11Add a new AST node for unsuffixed integer types.Lindsey Kuper-31/+29
2012-06-11Stop emitting type parameters in shape.rs.Michael Sullivan-16/+9
2012-06-11Clean up tydesc declaration to make it clear what is unused.Michael Sullivan-7/+7
2012-06-11Get rid of a bunch of dead shape code. Closes #2552.Michael Sullivan-1/+0
2012-06-11Don't treat all class fields as mutable, except in transTim Chevalier-7/+28
Closes #2550
2012-06-08remove alias analysis and replace with borrowckNiko Matsakis-934/+8
This reverts commit 7ef825bb607c4e934c92bd0b73ecbc4c24f3286b.
2012-06-08avoid rooting @ptrs that live in immutable, stable memoryNiko Matsakis-30/+50
2012-06-08make ccx/tcx/sess methods on bcx pureNiko Matsakis-3/+3
2012-06-08Update READMEs and comments to reflect "rustsyntax" -> "syntax" changeLindsey Kuper-7/+7
2012-06-08Get rid of little-used logging fns in util::common. Closes #2553.Lindsey Kuper-129/+29
Also got rid of a bunch of commented-out logging statements and generally cleaned up the logging situation, mostly in typestate.
2012-06-08Pass names of fields and variants when reflecting.Graydon Hoare-31/+34