refactor: Rename and move const_arg_path

It wasn't testing the `const_arg` code path, it was actually hitting
const_param's default value code path, so move it to the right place
and rename it.
This commit is contained in:
Steven Joruk 2022-03-11 21:44:18 +00:00
parent e84453c47f
commit 8a28430676
6 changed files with 41 additions and 33 deletions

View file

@ -99,9 +99,8 @@ pub(super) fn const_arg_expr(p: &mut Parser) {
expressions::literal(p);
lm.complete(p, PREFIX_EXPR);
}
// test const_arg_path
// type T = S<u32::MAX>;
_ => {
// This shouldn't be hit by `const_arg`
let lm = p.start();
paths::use_path(p);
lm.complete(p, PATH_EXPR);

View file

@ -85,6 +85,9 @@ fn const_param(p: &mut Parser, m: Marker) {
// test const_param_default_expression
// struct A<const N: i32 = { 1 }>;
// test const_param_default_path
// struct A<const N: i32 = i32::MAX>;
generic_args::const_arg_expr(p);
}

View file

@ -1,30 +0,0 @@
SOURCE_FILE
TYPE_ALIAS
TYPE_KW "type"
WHITESPACE " "
NAME
IDENT "T"
WHITESPACE " "
EQ "="
WHITESPACE " "
PATH_TYPE
PATH
PATH_SEGMENT
NAME_REF
IDENT "S"
GENERIC_ARG_LIST
L_ANGLE "<"
TYPE_ARG
PATH_TYPE
PATH
PATH
PATH_SEGMENT
NAME_REF
IDENT "u32"
COLON2 "::"
PATH_SEGMENT
NAME_REF
IDENT "MAX"
R_ANGLE ">"
SEMICOLON ";"
WHITESPACE "\n"

View file

@ -1 +0,0 @@
type T = S<u32::MAX>;

View file

@ -0,0 +1,36 @@
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 " "
PATH_EXPR
PATH
PATH
PATH_SEGMENT
NAME_REF
IDENT "i32"
COLON2 "::"
PATH_SEGMENT
NAME_REF
IDENT "MAX"
R_ANGLE ">"
SEMICOLON ";"
WHITESPACE "\n"

View file

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