recover from missing type annotation

This commit is contained in:
hkalbasi 2022-04-01 17:20:54 +04:30
parent 244ee65bbe
commit 049f0a6d2c
2 changed files with 20 additions and 0 deletions

View file

@ -2556,6 +2556,20 @@ fn f() {
)
}
#[test]
fn infer_missing_type() {
check_types(
r#"
struct S;
fn f() {
let s: = S;
//^ S
}
"#,
);
}
#[test]
fn infer_type_alias_variant() {
check_infer(

View file

@ -57,6 +57,12 @@ fn type_with_bounds_cond(p: &mut Parser, allow_bounds: bool) {
pub(super) fn ascription(p: &mut Parser) {
assert!(p.at(T![:]));
p.bump(T![:]);
if p.at(T![=]) {
// recover from `let x: = expr;`, `const X: = expr;` and similars
// hopefully no type starts with `=`
p.error("missing type");
return;
}
type_(p);
}