9153d8ad6c
parameters This involves numerous substeps: 1. Treat Self same as any other parameter. 2. No longer compute offsets for method parameters. 3. Store all generic types (both trait/impl and method) with a method, eliminating odd discrepancies. 4. Stop doing unspeakable things to static methods and instead just use the natural types, now that we can easily add the type parameters from trait into the method's polytype. 5. No doubt some more. It was hard to separate these into distinct commits. Fixes #13564
22 lines
947 B
Rust
22 lines
947 B
Rust
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
|
|
// file at the top-level directory of this distribution and at
|
|
// http://rust-lang.org/COPYRIGHT.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
// Regression test for #13466
|
|
|
|
pub fn main() {
|
|
// The expected arm type `Option<T>` has one type parameter, while
|
|
// the actual arm `Result<T, E>` has two. typeck should not be
|
|
// tricked into looking up a non-existing second type parameter.
|
|
let _x: uint = match Some(1u) {
|
|
Ok(u) => u, //~ ERROR mismatched types: expected `core::option::Option<uint>`
|
|
Err(e) => fail!(e) //~ ERROR mismatched types: expected `core::option::Option<uint>`
|
|
};
|
|
}
|