@@ -2042,6 +2042,48 @@ mod method_determined_by_argument_type {
2042
2042
}
2043
2043
}
2044
2044
2045
+ trait MyFrom < T > {
2046
+ // MyFrom::my_from
2047
+ fn my_from ( value : T ) -> Self ;
2048
+ }
2049
+
2050
+ impl MyFrom < i64 > for i64 {
2051
+ // MyFrom<i64>::my_from
2052
+ fn my_from ( value : i64 ) -> Self {
2053
+ value
2054
+ }
2055
+ }
2056
+
2057
+ impl MyFrom < bool > for i64 {
2058
+ // MyFrom<bool>::my_from
2059
+ fn my_from ( value : bool ) -> Self {
2060
+ if value { 1 } else { 0 }
2061
+ }
2062
+ }
2063
+
2064
+ trait MyFrom2 < T > {
2065
+ // MyFrom2::my_from2
2066
+ fn my_from2 ( value : T , x : Self ) -> ( ) ;
2067
+ }
2068
+
2069
+ impl MyFrom2 < i64 > for i64 {
2070
+ // MyFrom2<i64>::my_from2
2071
+ fn my_from2 ( value : i64 , _: Self ) -> ( ) {
2072
+ value;
2073
+ }
2074
+ }
2075
+
2076
+ impl MyFrom2 < bool > for i64 {
2077
+ // MyFrom2<bool>::my_from2
2078
+ fn my_from2 ( value : bool , _: Self ) -> ( ) {
2079
+ if value {
2080
+ 1
2081
+ } else {
2082
+ 0
2083
+ } ;
2084
+ }
2085
+ }
2086
+
2045
2087
pub fn f ( ) {
2046
2088
let x: i64 = 73 ;
2047
2089
x. my_add ( 5i64 ) ; // $ method=MyAdd<i64>::my_add
@@ -2051,6 +2093,13 @@ mod method_determined_by_argument_type {
2051
2093
S ( 1i64 ) . my_add ( S ( 2i64 ) ) ; // $ method=S::my_add1
2052
2094
S ( 1i64 ) . my_add ( 3i64 ) ; // $ MISSING: method=S::my_add2
2053
2095
S ( 1i64 ) . my_add ( & 3i64 ) ; // $ method=S::my_add3
2096
+
2097
+ let x = i64:: my_from ( 73i64 ) ; // $ method=MyFrom<i64>::my_from $ SPURIOUS: method=MyFrom<bool>::my_from
2098
+ let y = i64:: my_from ( true ) ; // $ method=MyFrom<bool>::my_from $ SPURIOUS: method=MyFrom<i64>::my_from
2099
+ let z: i64 = MyFrom :: my_from ( 73i64 ) ; // $ MISSING: method=MyFrom<i64>::my_from $ SPURIOUS: method=MyFrom::my_from
2100
+ i64:: my_from2 ( 73i64 , 0i64 ) ; // $ method=MyFrom2<i64>::my_from2 $ SPURIOUS: method=MyFrom2<bool>::my_from2
2101
+ i64:: my_from2 ( true , 0i64 ) ; // $ method=MyFrom2<bool>::my_from2 $ SPURIOUS: method=MyFrom2<i64>::my_from2
2102
+ MyFrom2 :: my_from2 ( 73i64 , 0i64 ) ; // $ MISSING: method=MyFrom2<i64>::my_from2 $ SPURIOUS: method=MyFrom2::my_from2
2054
2103
}
2055
2104
}
2056
2105
0 commit comments