diff options
| author | bors <bors@rust-lang.org> | 2015-02-24 17:56:09 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-02-24 17:56:09 +0000 |
| commit | 0bd15657d93c932611f3aee351b6521cdfa77731 (patch) | |
| tree | 9c6b0adbc679be678c38f2ca305fcdc98907f451 /src/libstd/sys/unix/stack_overflow.rs | |
| parent | c9ace059e707392ceec46619ed032e93e6256dd5 (diff) | |
| parent | 0c6d1f3b3d22f45c53c8be0a799a6cc42bc752d5 (diff) | |
| download | rust-0bd15657d93c932611f3aee351b6521cdfa77731.tar.gz rust-0bd15657d93c932611f3aee351b6521cdfa77731.zip | |
Auto merge of #22172 - eddyb:almost-there, r=nikomatsakis
Adds `<module::Type>::method` support and makes `module::Type::method` a shorthand for it.
This is most of #16293, except that chaining multiple associated types is not yet supported.
It also fixes #22563 as `impl`s are no longer treated as modules in resolve.
Unfortunately, this is still a *[breaking-change]*:
* If you used a global path to a primitive type, i.e. `::bool`, `::i32` etc. - that was a bug I had to fix.
Solution: remove the leading `::`.
* If you passed explicit `impl`-side type parameters to an inherent method, e.g.:
```rust
struct Foo<T>(T);
impl<A, B> Foo<(A, B)> {
fn pair(a: A, b: B) -> Foo<(A, B)> { Foo((a, b)) }
}
Foo::<A, B>::pair(a, b)
// Now that is sugar for:
<Foo<A, B>>::pair(a, b)
// Which isn't valid because `Foo` has only one type parameter.
// Solution: replace with:
Foo::<(A, B)>::pair(a, b)
// And, if possible, remove the explicit type param entirely:
Foo::pair(a, b)
```
* If you used the `QPath`-related `AstBuilder` methods @hugwijst added in #21943.
The methods still exist, but `QPath` was replaced by `QSelf`, with the actual path stored separately.
Solution: unpack the pair returned by `cx.qpath` to get the two arguments for `cx.expr_qpath`.
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
