intenral: more local tests for statics

This commit is contained in:
Aleksey Kladov 2021-09-18 01:02:43 +03:00
parent 1feb8e89d5
commit 3474e3b3b1
9 changed files with 50 additions and 45 deletions

View File

@ -1,5 +1,7 @@
use super::*;
// test const_item
// const C: u32 = 92;
pub(super) fn konst(p: &mut Parser, m: Marker) {
p.bump(T![const]);
const_or_static(p, m, true)
@ -13,14 +15,15 @@ pub(super) fn static_(p: &mut Parser, m: Marker) {
fn const_or_static(p: &mut Parser, m: Marker, is_const: bool) {
p.eat(T![mut]);
// Allow `_` in place of an identifier in a `const`.
let is_const_underscore = is_const && p.eat(T![_]);
if !is_const_underscore {
if is_const && p.eat(T![_]) {
// test anonymous_const
// const _: u32 = 0;
} else {
// test_err anonymous_static
// static _: i32 = 5;
name(p);
}
// test_err static_underscore
// static _: i32 = 5;
if p.at(T![:]) {
types::ascription(p);
} else {

View File

@ -0,0 +1,20 @@
SOURCE_FILE@0..19
CONST@0..18
CONST_KW@0..5 "const"
WHITESPACE@5..6 " "
NAME@6..7
IDENT@6..7 "C"
COLON@7..8 ":"
WHITESPACE@8..9 " "
PATH_TYPE@9..12
PATH@9..12
PATH_SEGMENT@9..12
NAME_REF@9..12
IDENT@9..12 "u32"
WHITESPACE@12..13 " "
EQ@13..14 "="
WHITESPACE@14..15 " "
LITERAL@15..17
INT_NUMBER@15..17 "92"
SEMICOLON@17..18 ";"
WHITESPACE@18..19 "\n"

View File

@ -0,0 +1 @@
const C: u32 = 92;

View File

@ -0,0 +1,19 @@
SOURCE_FILE@0..18
CONST@0..17
CONST_KW@0..5 "const"
WHITESPACE@5..6 " "
UNDERSCORE@6..7 "_"
COLON@7..8 ":"
WHITESPACE@8..9 " "
PATH_TYPE@9..12
PATH@9..12
PATH_SEGMENT@9..12
NAME_REF@9..12
IDENT@9..12 "u32"
WHITESPACE@12..13 " "
EQ@13..14 "="
WHITESPACE@14..15 " "
LITERAL@15..16
INT_NUMBER@15..16 "0"
SEMICOLON@16..17 ";"
WHITESPACE@17..18 "\n"

View File

@ -0,0 +1 @@
const _: u32 = 0;

View File

@ -1,38 +1 @@
SOURCE_FILE@0..39
CONST@0..17
CONST_KW@0..5 "const"
WHITESPACE@5..6 " "
UNDERSCORE@6..7 "_"
COLON@7..8 ":"
WHITESPACE@8..9 " "
PATH_TYPE@9..12
PATH@9..12
PATH_SEGMENT@9..12
NAME_REF@9..12
IDENT@9..12 "u32"
WHITESPACE@12..13 " "
EQ@13..14 "="
WHITESPACE@14..15 " "
LITERAL@15..16
INT_NUMBER@15..16 "0"
SEMICOLON@16..17 ";"
WHITESPACE@17..18 "\n"
CONST@18..38
CONST_KW@18..23 "const"
WHITESPACE@23..24 " "
NAME@24..27
IDENT@24..27 "FOO"
COLON@27..28 ":"
WHITESPACE@28..29 " "
PATH_TYPE@29..32
PATH@29..32
PATH_SEGMENT@29..32
NAME_REF@29..32
IDENT@29..32 "u32"
WHITESPACE@32..33 " "
EQ@33..34 "="
WHITESPACE@34..35 " "
LITERAL@35..37
INT_NUMBER@35..37 "92"
SEMICOLON@37..38 ";"
WHITESPACE@38..39 "\n"
SOURCE_FILE@0..0

View File

@ -1,2 +0,0 @@
const _: u32 = 0;
const FOO: u32 = 92;