]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #11595 : eddyb/rust/env-et-self-no-more, r=nikomatsakis
authorbors <bors@rust-lang.org>
Mon, 27 Jan 2014 17:31:44 +0000 (09:31 -0800)
committerbors <bors@rust-lang.org>
Mon, 27 Jan 2014 17:31:44 +0000 (09:31 -0800)
Non-exhaustive change list:
* `self` is now present in argument lists (modulo type-checking code I don't trust myself to refactor)
* methods have the same calling convention as bare functions (including the self argument)
* the env param is gone from all bare functions (and methods), only used by closures and `proc`s
* bare functions can only be coerced to closures and `proc`s if they are statically resolved, as they now require creating a wrapper specific to that function, to avoid indirect wrappers (equivalent to `impl<..Args, Ret> Fn<..Args, Ret> for fn(..Args) -> Ret`) that might not be optimizable by LLVM and don't work for `proc`s
* refactored some `trans::closure` code, leading to the removal of `trans::glue::make_free_glue` and `ty_opaque_closure_ptr`


Trivial merge