about summary refs log tree commit diff
path: root/src/comp/middle/trans.rs
AgeCommit message (Collapse)AuthorLines
2011-12-18Only look for a matching method when normal field access failsMarijn Haverbeke-2/+2
We should probalby warn when defining a method foo on {foo: int} etc. This should reduce the amount of useless typevars that are allocated. Issue #1227
2011-12-16extend with ty_send_type and ty_opaque_closureNiko Matsakis-1/+6
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-3/+3
2011-12-16Make polymorphic impl methods workMarijn Haverbeke-10/+16
Something will still have to be done to the AST to make it possible to say `x.foo::<int>()`, since currently field access never allows type parameters. Issue #1227
2011-12-16Make uses of self in impls compileMarijn Haverbeke-36/+41
Get rid of expr_self_call, introduces def_self. `self` is now, syntactically, simply a variable. A method implicitly brings a `self` binding into scope. Issue #1227
2011-12-16Get very simple impl method calls to compileMarijn Haverbeke-33/+62
Resolution is still dumb, and no self support yet.
2011-12-16Get a very primitive form of typechecking/resolving to work for implsMarijn Haverbeke-1/+4
No conflict resolution or polymorphism yet. Issue #1227
2011-12-16Parse and resolve implementations.Marijn Haverbeke-0/+4
Issue #1227
2011-12-16rustc: Implement non-renamed re-export across cratesHaitao Li-3/+5
First patch for issue #1115. Not yet ready for re-exported modules which are renamed when importing them.
2011-12-15rustc: Box the vectors returned from ty::tag_variantsBrian Anderson-8/+8
2011-12-15massive refactor of how closures workNiko Matsakis-276/+48
2011-12-15resurrect tps_fn() and put it to use this time.Niko Matsakis-2/+3
2011-12-14remove unused tps_fn(); comment out unused varNiko Matsakis-3/+2
2011-12-14refactor trans into trans_closure; restore original closure reprNiko Matsakis-412/+12
2011-12-14treat native fns as shared closuresNiko Matsakis-0/+1
2011-12-14insert a field into the closure storing number of ty descsNiko Matsakis-15/+19
2011-12-14pull out the code from iter_structural_ty for handling functions,Niko Matsakis-28/+54
as we will have to do very careful and non-generic things
2011-12-14treat different kinds of closures differentlyNiko Matsakis-19/+53
2011-12-14translate unique closure env betterNiko Matsakis-24/+47
2011-12-14remove unused optionsNiko Matsakis-15/+5
2011-12-14get basic code generation working, clone type descs for lambda[send]Niko Matsakis-19/+52
2011-12-14make fact that trans'ing lvar does not modify bcx explicit in typeNiko Matsakis-12/+19
2011-12-14sendable functions now "work", meaning pass through trans/typestateNiko Matsakis-2/+2
but they do not generate correct code
2011-12-14first attempt, not happy with itNiko Matsakis-1/+2
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-37/+39
2011-12-12rustc: build versioned library with hash in its nameHaitao Li-2/+2
Also updated build to install versioned libraries and added a few missing actions for `make clean`.
2011-12-08rustc: Determine the crate type (lib/bin) in the session, not session optsBrian Anderson-3/+3
This is in preparation for adding a #[crate_type] attribute
2011-12-08Allow binding of nested patternsMarijn Haverbeke-2/+2
See src/test/run-pass/nested-patterns.rs for some examples. The syntax is boundvar@subpattern Which will match the subpattern as usual, but also bind boundvar to the whole matched value. Closes #838
2011-12-07Change literal representation to not truncateMarijn Haverbeke-62/+13
Also shuffles around the organization of numeric literals and types, separating by int/uint/float instead of machine-vs-non-machine types. This simplifies some code. Closes #974 Closes #1252
2011-12-07Disallow binding by-mut-ref and by-move argumentsMarijn Haverbeke-0/+6
Fix bug in bound by-copy arguments. Closes #1261
2011-12-06do not stringify AST nodes unless emitting commentsNiko Matsakis-1/+3
2011-12-06rt: Various tweaks to make __morestack unwinding work on linuxBrian Anderson-0/+5
When unwinding through __morestack the stack limit in the TLS is invalidated and must be reset. Instead of actually landing at __morestack we're just going to make all our Rust landing pads call upcall_reset_stack_limit, which will find the stack segment that corresponds to the current stack pointer and put the limit in the TLS. Also massively expand the stack segment red zone to make more room for the dynamic linker. Will fix in the future.
2011-12-05rustc: Remove whitespaceBrian Anderson-1/+1
2011-12-05rustc: Add suffix ".rc" to LLVM module identifierHaitao Li-1/+12
LLVM code generator emits the ".file filename" directive for ELF backends. Value of the "filename" is set as the LLVM module identifier. Due to a LLVM MC bug[1], LLVM crashes if the module identifer is same as other symbols such as a function name in the module. This patch adds a ".rc" suffix (means crates) to LLVM module identifier to workaround the bug. Fixes issue #1251. 1. http://llvm.org/bugs/show_bug.cgi?id=11479
2011-12-05rustc: Fix memory leak in do-while loopHaitao Li-2/+5
Issue #1257
2011-12-02const_check: trans: added support for trivial castsStefan Plantikow-0/+10
Part of #1215
2011-12-02parse: typeck: enabling trivial casts of tail-call return valuesStefan Plantikow-6/+5
introduces ctypes::m_* machine type aliases for int, uint, float depending on cfg(target_arch) that are used in tests
2011-12-02ty: trans: added support for dropping trivial castsStefan Plantikow-1/+8
2011-11-30Box ast::path valuesMarijn Haverbeke-1/+1
It seems inefficient to copy them around. Let's measure whether that's actually > the case
2011-11-29fix bug in shape concerning size of tag variantNiko Matsakis-2/+2
2011-11-23Rollback return-by-referenceMarijn Haverbeke-52/+25
It's proving too inflexible, so I'm ripping out the extra complexity in the hope that regions will, at some point, provide something similar. Closes #918
2011-11-22Make type_needs_drop accurate, get rid of type_has_pointersMarijn Haverbeke-7/+4
Closes #1209
2011-11-21rustc: Remove abi from ast::native_modHaitao Li-20/+48
2011-11-21Fix bad interaction between last-use finding and referencesMarijn Haverbeke-4/+6
The last-use pass now takes input from the alias pass to not mark things as last uses that are still accessed through a reference. Issue #925
2011-11-18get pure wrappers approach runningNiko Matsakis-100/+49
2011-11-18sketch out designNiko Matsakis-54/+98
2011-11-18Make sure by-copy arguments take last-use into accountMarijn Haverbeke-1/+7
2011-11-18Make sure trans translates record fields in the order they appear in codeMarijn Haverbeke-24/+25
This prevents surprising side-effect orders, and makes them easier for the other passes to deal with.
2011-11-18Make trans use last_use info to not actually generate copiesMarijn Haverbeke-18/+29
Issue #925
2011-11-18Properly check kinds in instantiation of genericsMarijn Haverbeke-1/+1
Issue #1177