Skip to content

Commit 87a632e

Browse files
authored
[v2] make Topic::lexical_context required (#1460)
Made `Topic::lexical_context` required, instead of creating a "default" context behind the scenes. > NOTE: this is a set of PRs to add the lexer v2, to make reviewing smaller chunks easier: > > 1. #1457 > 2. #1458 > 3. #1459 > 4. #1460 > 5. #1461 > 6. #1462
1 parent 4c2c6d2 commit 87a632e

File tree

39 files changed

+104
-47
lines changed

39 files changed

+104
-47
lines changed

crates/language-v2/definition/src/model/manifest.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,7 @@ impl Section {
168168
#[derive_spanned_type(Clone, Debug, ParseInputTokens, WriteOutputTokens)]
169169
pub struct Topic {
170170
pub title: String,
171-
172-
#[serde(skip_serializing_if = "Option::is_none")]
173-
pub lexical_context: Option<Identifier>,
174-
171+
pub lexical_context: Identifier,
175172
pub items: Vec<Item>,
176173
}
177174

crates/language-v2/tests/src/fail/p0_parsing/duplicate_map_key/test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ language_v2_macros::compile!(Language(
1111
title = "Section One",
1212
topics = [Topic(
1313
title = "Topic One",
14+
lexical_context = Foo,
1415
items = [
1516
Struct(
1617
name = Bar,
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: Duplicate map key.
2-
--> src/fail/p0_parsing/duplicate_map_key/test.rs:19:25
2+
--> src/fail/p0_parsing/duplicate_map_key/test.rs:20:25
33
|
4-
19 | field_1 = Required(Baz),
4+
20 | field_1 = Required(Baz),
55
| ^^^^^^^

crates/language-v2/tests/src/fail/p0_parsing/duplicate_set_entry/test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ language_v2_macros::compile!(Language(
1111
title = "Section One",
1212
topics = [Topic(
1313
title = "Topic One",
14+
lexical_context = Foo,
1415
items = [Token(
1516
name = Bar,
1617
definitions = [TokenDefinition(scanner = Atom("bar"))]

crates/language-v2/tests/src/fail/p0_parsing/empty_string/test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ language_v2_macros::compile!(Language(
1111
title = "Section One",
1212
topics = [Topic(
1313
title = "Topic One",
14+
lexical_context = Foo,
1415
items = [Token(
1516
name = Bar,
1617
definitions = [TokenDefinition(scanner = Atom(""))]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: Expected a non-empty string.
2-
--> src/fail/p0_parsing/empty_string/test.rs:16:63
2+
--> src/fail/p0_parsing/empty_string/test.rs:17:63
33
|
4-
16 | definitions = [TokenDefinition(scanner = Atom(""))]
4+
17 | definitions = [TokenDefinition(scanner = Atom(""))]
55
| ^^

crates/language-v2/tests/src/fail/p0_parsing/unrecognized_field/test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ language_v2_macros::compile!(Language(
1111
title = "Section One",
1212
topics = [Topic(
1313
title = "Topic One",
14+
lexical_context = Foo,
1415
items = [Token(
1516
name = Bar,
1617
definitions = [TokenDefinition(scanner = Atom("bar"))]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: unexpected token, expected `)`
2-
--> src/fail/p0_parsing/unrecognized_field/test.rs:18:13
2+
--> src/fail/p0_parsing/unrecognized_field/test.rs:19:13
33
|
4-
18 | unrecognized_field = true
4+
19 | unrecognized_field = true
55
| ^^^^^^^^^^^^^^^^^^

crates/language-v2/tests/src/fail/p0_parsing/unrecognized_variant/test.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,17 @@ language_v2_macros::compile!(Language(
1212
topics = [
1313
Topic(
1414
title = "Topic One",
15+
lexical_context = Foo,
1516
items = [
1617
Struct(name = Bar1, fields = (field = Required(Bar2))),
1718
Struct(name = Bar2, fields = (field = Required(Bar1)))
1819
]
1920
),
20-
Topic(title = "Topic Two", items = [Unrecognized(true)])
21+
Topic(
22+
title = "Topic Two",
23+
lexical_context = Foo,
24+
items = [Unrecognized(true)]
25+
)
2126
]
2227
)],
2328
built_ins = []
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: Expected a variant: 'Struct' or 'Enum' or 'Repeated' or 'Separated' or 'Precedence' or 'Trivia' or 'Keyword' or 'Token' or 'Fragment'
2-
--> src/fail/p0_parsing/unrecognized_variant/test.rs:20:49
2+
--> src/fail/p0_parsing/unrecognized_variant/test.rs:24:26
33
|
4-
20 | Topic(title = "Topic Two", items = [Unrecognized(true)])
5-
| ^^^^^^^^^^^^
4+
24 | items = [Unrecognized(true)]
5+
| ^^^^^^^^^^^^

0 commit comments

Comments
 (0)