summary refs log tree commit diff
path: root/src/rustc/middle/trans/impl.rs
AgeCommit message (Collapse)AuthorLines
2012-03-27Move some code over to iterator-for to see how it performs.Marijn Haverbeke-3/+3
2012-03-27Support returning from loop blocksMarijn Haverbeke-1/+1
The code is somewhat invasive, but it seems hard to do this in a clean way, since the design itself involves a bunch of 'action at a distance'. Issue #1819
2012-03-23Handle self correctly when translating classesTim Chevalier-1/+1
This change uses the same code for handling the "self" reference for classes as is already used for impls/ifaces. This allows removing the extra maybe_self_id argument (which was just for classes) to trans_closure that I added before. I also rewrote the translation for class ctors so that it doesn't generate new AST nodes (instead translating directly). Also changed visit so that it visits class ctors correctly with visit_fn, and changed typestate to not do return-checking when visiting a class ctor.
2012-03-23Remove last vestiges of old-style intrinsicsMarijn Haverbeke-1/+1
Closes #2048
2012-03-23Remove more needless context threading in transMarijn Haverbeke-2/+2
2012-03-23Revert removal of intrinsicsMarijn Haverbeke-1/+1
Oops. We can't do this yet until the next snapshot.
2012-03-23Remove support for the old-style intrinsicsMarijn Haverbeke-1/+1
Closes #2042 Closes #1981
2012-03-23Implement built-in native modules as an alternative to intrinsicsMarijn Haverbeke-1/+1
Issue #1981
2012-03-22Add an LLVM-instruction-counting mode to trans.Graydon Hoare-0/+9
Pipe to xdu to see a trans call graph of generated insns.
2012-03-21add mut decls to rustc and make them mandatoryNiko Matsakis-3/+3
2012-03-16Forbid boxed ifaces with self types or generic methods in bounded paramsMarijn Haverbeke-4/+7
They are a soundness hole. Closes #1994
2012-03-16Support binding of methods off boxed iface valuesMarijn Haverbeke-4/+4
Closes #435
2012-03-15Fix bug in vtable builderMarijn Haverbeke-1/+8
Closes #1947 , which I completely misdiagnosed.
2012-03-15Reuse monomorphized functions more aggressivelyMarijn Haverbeke-6/+7
Adds a trans::type_use pass that, given a function body, detects how dependant that function is on properties of its type parameters.
2012-03-15Remove support for dynamically-sized types from translation codeMarijn Haverbeke-2/+2
2012-03-15Properly recognize external intrinsicsMarijn Haverbeke-14/+8
2012-03-15Huge kludge to get intrinsics' type parameters passedMarijn Haverbeke-10/+2
2012-03-15Never pass tydesc to functionsMarijn Haverbeke-160/+6
My assumption that native generics needed them was wrong, so tydescs can be eliminated from function signatures completely.
2012-03-15Properly replace iface tps with impl tps in static method callsMarijn Haverbeke-5/+19
Un-xfail iface-generic.rs
2012-03-15Remove a large part of the tydesc-passing codeMarijn Haverbeke-7/+5
2012-03-15Rename dict to vtable throughout the compilerMarijn Haverbeke-41/+41
The difference went away.
2012-03-15Hugely simplify iface handlingMarijn Haverbeke-220/+91
With the assumption of monomorphization
2012-03-15Stop generating generic versions of generic functionsMarijn Haverbeke-5/+8
Monomorphic instances are generated on demand.
2012-03-15Fix assumption that monomorphized method's impls are crate-localMarijn Haverbeke-13/+18
2012-03-14Convert *u8 native string users to *c_charBrian Anderson-2/+2
2012-03-14rustc: Lift the @ from the type definition of crate_ctxt into its usesPatrick Walton-9/+9
This will make it easier to convert crate_ctxt into a region pointer, since there are functions that return crate contexts. There would be no way to type these functions if crate_ctxt had to be an inferred region pointer.
2012-03-13Overhaul constructor naming in libsBrian Anderson-1/+1
2012-03-12Libc/os/run/rand/io reorganization. Close #1373. Close #1638.Graydon Hoare-1/+1
- Move io, run and rand to core. - Remove incorrect ctypes module (use libc). - Remove os-specific modules for os and fs. - Split fs between core::path and core::os.
2012-03-10core: Rename vec::tail_n to vec::tailn to match other fnsBrian Anderson-1/+1
2012-03-08Explicitly store self_ids use for self locals in methodsMarijn Haverbeke-3/+2
This makes it possible to move them between crates without confusion, and to instantiate them at a point where the monomorphizing substitutions are known. Issue #1944
2012-03-08Drop collect_items pass, create decls on demandMarijn Haverbeke-16/+9
This solves a problem with inlined functions that have inner functions.
2012-03-07stdlib: Stop incurring vtable dispatch costs when hashmaps are usedPatrick Walton-0/+1
This required changing almost all users of hashmaps to import the hashmap interface first. The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-07Revert "stdlib: Stop incurring vtable dispatch costs when hashmaps are used"Patrick Walton-1/+0
This reverts commit f0250a23d3fa2f8b4a4a4113ca89e41945a4cfed.
2012-03-07stdlib: Stop incurring vtable dispatch costs when hashmaps are usedPatrick Walton-0/+1
This required changing almost all users of hashmaps to import the hashmap interface first. The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-05rustc: Lower case error messagesBrian Anderson-4/+4
2012-03-04Translate simple classesTim Chevalier-1/+1
Programs using classes with fields only (no methods) compile and run, as long as nothing refers to a class in a different crate (todo). Also changed the AST representation of classes to have a separate record for constructor info (instead of inlining the fields in the item_class node), and fixed up spans and pretty-printing for classes.
2012-03-02Move src/comp to src/rustcGraydon Hoare-0/+547