Recover from missing associated items and generic const defaults

This commit is contained in:
Ryo Yoshida 2023-07-04 20:34:55 +09:00
parent 45d4ebcf19
commit 49b039f1d1
No known key found for this signature in database
GPG key ID: E25698A930586171
6 changed files with 113 additions and 3 deletions

View file

@ -0,0 +1,48 @@
SOURCE_FILE
FN
FN_KW "fn"
WHITESPACE " "
NAME
IDENT "f"
PARAM_LIST
L_PAREN "("
R_PAREN ")"
WHITESPACE " "
RET_TYPE
THIN_ARROW "->"
WHITESPACE " "
IMPL_TRAIT_TYPE
IMPL_KW "impl"
WHITESPACE " "
TYPE_BOUND_LIST
TYPE_BOUND
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "Iterator"
GENERIC_ARG_LIST
L_ANGLE "<"
ASSOC_TYPE_ARG
NAME_REF
IDENT "Item"
WHITESPACE " "
EQ "="
WHITESPACE " "
COMMA ","
WHITESPACE " "
ASSOC_TYPE_ARG
NAME_REF
IDENT "Item"
WHITESPACE " "
EQ "="
WHITESPACE " "
R_ANGLE ">"
WHITESPACE " "
BLOCK_EXPR
STMT_LIST
L_CURLY "{"
R_CURLY "}"
WHITESPACE "\n"
error 30: missing associated item binding
error 39: missing associated item binding

View file

@ -0,0 +1 @@
fn f() -> impl Iterator<Item = , Item = > {}

View file

@ -0,0 +1,44 @@
SOURCE_FILE
STRUCT
STRUCT_KW "struct"
WHITESPACE " "
NAME
IDENT "A"
GENERIC_PARAM_LIST
L_ANGLE "<"
CONST_PARAM
CONST_KW "const"
WHITESPACE " "
NAME
IDENT "N"
COLON ":"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "i32"
WHITESPACE " "
EQ "="
WHITESPACE " "
COMMA ","
WHITESPACE " "
CONST_PARAM
CONST_KW "const"
WHITESPACE " "
NAME
IDENT "M"
COLON ":"
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "i32"
WHITESPACE " "
EQ "="
R_ANGLE ">"
SEMICOLON ";"
WHITESPACE "\n"
error 23: expected a generic const argument
error 40: expected a generic const argument

View file

@ -0,0 +1 @@
struct A<const N: i32 = , const M: i32 =>;