mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-13 18:37:33 +00:00
Use first match branch in case of type mismatch, not last
The comment says this was intentional, but I do agree with #4304 that it makes more sense the other way around (for if/else as well). Fixes #4304.
This commit is contained in:
parent
190a0595a4
commit
7d0586cb15
@ -45,9 +45,7 @@ impl<'a> InferenceContext<'a> {
|
||||
self.coerce_merge_branch(&ptr_ty1, &ptr_ty2)
|
||||
} else {
|
||||
mark::hit!(coerce_merge_fail_fallback);
|
||||
// For incompatible types, we use the latter one as result
|
||||
// to be better recovery for `if` without `else`.
|
||||
ty2.clone()
|
||||
ty1.clone()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -937,7 +937,7 @@ fn main(foo: Foo) {
|
||||
51..107 'if tru... }': ()
|
||||
54..58 'true': bool
|
||||
59..67 '{ }': ()
|
||||
73..107 'if fal... }': ()
|
||||
73..107 'if fal... }': i32
|
||||
76..81 'false': bool
|
||||
82..107 '{ ... }': i32
|
||||
92..95 'foo': Foo
|
||||
|
Loading…
Reference in New Issue
Block a user