From 2a755495d0ccec02d6ed474d7022a92a392593cb Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Wed, 4 May 2022 16:58:02 +0200 Subject: [PATCH] Add tests --- crates/hir-ty/src/tests/simple.rs | 11 +++++++ crates/parser/src/grammar/expressions.rs | 2 ++ .../parser/inline/ok/0011_field_expr.rast | 33 +++++++++++++++++++ .../parser/inline/ok/0011_field_expr.rs | 2 ++ 4 files changed, 48 insertions(+) diff --git a/crates/hir-ty/src/tests/simple.rs b/crates/hir-ty/src/tests/simple.rs index d4d61c2167..4b8a7e782d 100644 --- a/crates/hir-ty/src/tests/simple.rs +++ b/crates/hir-ty/src/tests/simple.rs @@ -2733,3 +2733,14 @@ fn f() { "#, ); } + +#[test] +fn nested_tuple_index() { + check_no_mismatches( + r#" +fn main() { + let fld: i32 = ((0,),).0.0; +} +"#, + ); +} diff --git a/crates/parser/src/grammar/expressions.rs b/crates/parser/src/grammar/expressions.rs index 85f53dd237..4189ec41b3 100644 --- a/crates/parser/src/grammar/expressions.rs +++ b/crates/parser/src/grammar/expressions.rs @@ -469,6 +469,8 @@ fn method_call_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { // fn foo() { // x.foo; // x.0.bar; +// x.0. bar; +// x.0.1; // x.0(); // } fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { diff --git a/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast b/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast index 8498724b9e..a1efb3a9fb 100644 --- a/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast +++ b/crates/parser/test_data/parser/inline/ok/0011_field_expr.rast @@ -40,6 +40,39 @@ SOURCE_FILE IDENT "bar" SEMICOLON ";" WHITESPACE "\n " + EXPR_STMT + FIELD_EXPR + FIELD_EXPR + PATH_EXPR + PATH + PATH_SEGMENT + NAME_REF + IDENT "x" + DOT "." + NAME_REF + FLOAT_NUMBER_PART "0" + DOT "." + WHITESPACE " " + NAME_REF + IDENT "bar" + SEMICOLON ";" + WHITESPACE "\n " + EXPR_STMT + FIELD_EXPR + FIELD_EXPR + PATH_EXPR + PATH + PATH_SEGMENT + NAME_REF + IDENT "x" + DOT "." + NAME_REF + FLOAT_NUMBER_PART "0" + DOT "." + NAME_REF + FLOAT_NUMBER_PART "1" + SEMICOLON ";" + WHITESPACE "\n " EXPR_STMT CALL_EXPR FIELD_EXPR diff --git a/crates/parser/test_data/parser/inline/ok/0011_field_expr.rs b/crates/parser/test_data/parser/inline/ok/0011_field_expr.rs index b8da2ddc30..551b1ecaf0 100644 --- a/crates/parser/test_data/parser/inline/ok/0011_field_expr.rs +++ b/crates/parser/test_data/parser/inline/ok/0011_field_expr.rs @@ -1,5 +1,7 @@ fn foo() { x.foo; x.0.bar; + x.0. bar; + x.0.1; x.0(); }