Closed
Description
trait A { fn a(); }
trait B { fn b(); }
impl f32: A { fn a() {} }
impl float: A { fn a() {} }
impl i16: A { fn a() {} }
impl int: A { fn a() {} }
impl u16: B { fn b() {} }
impl u64: B { fn b() {} }
fn main() {
0.0.a(); // default to `float::a`?
0.a(); // default to `int::a`?
0.b(); // error? (no impl on `int`)
}
% rustc numeric-literal-methods.rs
numeric-literal-methods.rs:15:4: 15:12 error: multiple applicable methods in scope
numeric-literal-methods.rs:15 0.0.a(); // default to `float::a`?
^~~~~~~~
numeric-literal-methods.rs:5:16: 5:25 note: candidate #1 is `__extensions__::a`
numeric-literal-methods.rs:5 impl f32: A { fn a() {} }
^~~~~~~~~
numeric-literal-methods.rs:6:16: 6:25 note: candidate #2 is `__extensions__::a`
numeric-literal-methods.rs:6 impl float: A { fn a() {} }
^~~~~~~~~
numeric-literal-methods.rs:16:4: 16:10 error: multiple applicable methods in scope
numeric-literal-methods.rs:16 0.a(); // default to `int::a`?
^~~~~~
numeric-literal-methods.rs:8:16: 8:25 note: candidate #1 is `__extensions__::a`
numeric-literal-methods.rs:8 impl i16: A { fn a() {} }
^~~~~~~~~
numeric-literal-methods.rs:9:16: 9:25 note: candidate #2 is `__extensions__::a`
numeric-literal-methods.rs:9 impl int: A { fn a() {} }
^~~~~~~~~
numeric-literal-methods.rs:17:4: 17:10 error: multiple applicable methods in scope
numeric-literal-methods.rs:17 0.b(); // error?
^~~~~~
numeric-literal-methods.rs:11:16: 11:25 note: candidate #1 is `__extensions__::b`
numeric-literal-methods.rs:11 impl u16: B { fn b() {} }
^~~~~~~~~
numeric-literal-methods.rs:12:16: 12:25 note: candidate #2 is `__extensions__::b`
numeric-literal-methods.rs:12 impl u64: B { fn b() {} }
^~~~~~~~~
error: aborting due to 3 previous errors
Metadata
Metadata
Assignees
Labels
No labels