mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 12:18:19 +00:00
Introduce proper type for TypeVar's, mark anything not a lowercase ident as malformed
This commit is contained in:
parent
a9c25563b2
commit
d43ad92789
65 changed files with 729 additions and 460 deletions
|
@ -1 +1 @@
|
|||
Expr(Pattern(Start(@4), @4), @0)
|
||||
Expr(Ability(DemandAlignment(-1, @18), @17), @0)
|
|
@ -0,0 +1,10 @@
|
|||
O {
|
||||
p?? if
|
||||
a
|
||||
then
|
||||
A
|
||||
else
|
||||
&m,
|
||||
} #
|
||||
: e
|
||||
i
|
|
@ -20,49 +20,52 @@
|
|||
name: @0-1 "O",
|
||||
vars: [
|
||||
@1-23 SpaceAfter(
|
||||
RecordDestructure(
|
||||
[
|
||||
@2-22 OptionalField(
|
||||
"p",
|
||||
@4-22 If {
|
||||
if_thens: [
|
||||
(
|
||||
@7-8 SpaceBefore(
|
||||
SpaceAfter(
|
||||
Var {
|
||||
module_name: "",
|
||||
ident: "a",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
@14-15 SpaceBefore(
|
||||
SpaceAfter(
|
||||
Tag(
|
||||
"A",
|
||||
Malformed(
|
||||
Record(
|
||||
[
|
||||
@2-22 OptionalValue(
|
||||
@2-3 "p",
|
||||
[],
|
||||
@4-22 If {
|
||||
if_thens: [
|
||||
(
|
||||
@7-8 SpaceBefore(
|
||||
SpaceAfter(
|
||||
Var {
|
||||
module_name: "",
|
||||
ident: "a",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
@14-15 SpaceBefore(
|
||||
SpaceAfter(
|
||||
Tag(
|
||||
"A",
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
],
|
||||
final_else: @20-22 RecordUpdater(
|
||||
"m",
|
||||
),
|
||||
],
|
||||
final_else: @20-22 RecordUpdater(
|
||||
"m",
|
||||
),
|
||||
indented_else: false,
|
||||
},
|
||||
),
|
||||
],
|
||||
indented_else: false,
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
[
|
||||
LineComment(
|
|
@ -19,8 +19,10 @@
|
|||
header: TypeHeader {
|
||||
name: @0-1 "C",
|
||||
vars: [
|
||||
@2-3 NumLiteral(
|
||||
"4",
|
||||
@2-3 Malformed(
|
||||
Num(
|
||||
"4",
|
||||
),
|
||||
),
|
||||
],
|
||||
},
|
|
@ -0,0 +1,2 @@
|
|||
N (implements) h (0) : B
|
||||
T
|
|
@ -19,14 +19,23 @@
|
|||
header: TypeHeader {
|
||||
name: @0-1 "N",
|
||||
vars: [
|
||||
@3-13 Identifier {
|
||||
ident: "implements",
|
||||
},
|
||||
@15-16 Identifier {
|
||||
ident: "h",
|
||||
},
|
||||
@18-19 NumLiteral(
|
||||
"0",
|
||||
@3-13 Malformed(
|
||||
ParensAround(
|
||||
Var {
|
||||
module_name: "",
|
||||
ident: "implements",
|
||||
},
|
||||
),
|
||||
),
|
||||
@15-16 Identifier(
|
||||
"h",
|
||||
),
|
||||
@18-19 Malformed(
|
||||
ParensAround(
|
||||
Num(
|
||||
"0",
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
},
|
|
@ -19,11 +19,15 @@
|
|||
header: TypeHeader {
|
||||
name: @0-1 "N",
|
||||
vars: [
|
||||
@2-4 NumLiteral(
|
||||
"-0",
|
||||
@2-4 Malformed(
|
||||
Num(
|
||||
"-0",
|
||||
),
|
||||
),
|
||||
@5-6 Tag(
|
||||
"T",
|
||||
@5-6 Malformed(
|
||||
Tag(
|
||||
"T",
|
||||
),
|
||||
),
|
||||
],
|
||||
},
|
|
@ -28,8 +28,10 @@
|
|||
header: TypeHeader {
|
||||
name: @0-1 "B",
|
||||
vars: [
|
||||
@1-3 OpaqueRef(
|
||||
"@A",
|
||||
@1-3 Malformed(
|
||||
OpaqueRef(
|
||||
"@A",
|
||||
),
|
||||
),
|
||||
],
|
||||
},
|
|
@ -0,0 +1,3 @@
|
|||
Zx (e #
|
||||
) f : i
|
||||
s
|
|
@ -19,19 +19,24 @@
|
|||
header: TypeHeader {
|
||||
name: @0-2 "Zx",
|
||||
vars: [
|
||||
@4-5 SpaceAfter(
|
||||
Identifier {
|
||||
ident: "e",
|
||||
},
|
||||
[
|
||||
LineComment(
|
||||
"",
|
||||
@4-5 Malformed(
|
||||
ParensAround(
|
||||
SpaceAfter(
|
||||
Var {
|
||||
module_name: "",
|
||||
ident: "e",
|
||||
},
|
||||
[
|
||||
LineComment(
|
||||
"",
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
@8-9 Identifier(
|
||||
"f",
|
||||
),
|
||||
@8-9 Identifier {
|
||||
ident: "f",
|
||||
},
|
||||
],
|
||||
},
|
||||
ann: @10-11 BoundVariable(
|
|
@ -19,15 +19,22 @@
|
|||
header: TypeHeader {
|
||||
name: @0-1 "U",
|
||||
vars: [
|
||||
@3-6 Apply(
|
||||
@3-4 Identifier {
|
||||
ident: "b",
|
||||
},
|
||||
[
|
||||
@5-6 Identifier {
|
||||
ident: "a",
|
||||
},
|
||||
],
|
||||
@3-6 Malformed(
|
||||
ParensAround(
|
||||
Apply(
|
||||
@3-4 Var {
|
||||
module_name: "",
|
||||
ident: "b",
|
||||
},
|
||||
[
|
||||
@5-6 Var {
|
||||
module_name: "",
|
||||
ident: "a",
|
||||
},
|
||||
],
|
||||
Space,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
},
|
|
@ -0,0 +1,10 @@
|
|||
M {
|
||||
s?? s
|
||||
{ J &
|
||||
},
|
||||
} {
|
||||
s?? s
|
||||
{ J &
|
||||
},
|
||||
} : p
|
||||
y
|
|
@ -0,0 +1,104 @@
|
|||
@0-25 SpaceAfter(
|
||||
Defs(
|
||||
Defs {
|
||||
tags: [
|
||||
EitherIndex(0),
|
||||
],
|
||||
regions: [
|
||||
@0-23,
|
||||
],
|
||||
space_before: [
|
||||
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
||||
],
|
||||
space_after: [
|
||||
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
||||
],
|
||||
spaces: [],
|
||||
type_defs: [
|
||||
Alias {
|
||||
header: TypeHeader {
|
||||
name: @0-1 "M",
|
||||
vars: [
|
||||
@1-11 Malformed(
|
||||
Record(
|
||||
[
|
||||
@2-10 OptionalValue(
|
||||
@2-3 "s",
|
||||
[],
|
||||
@4-10 Apply(
|
||||
@4-5 Var {
|
||||
module_name: "",
|
||||
ident: "s",
|
||||
},
|
||||
[
|
||||
@5-10 RecordUpdate {
|
||||
update: @6-7 Tag(
|
||||
"J",
|
||||
),
|
||||
fields: Collection {
|
||||
items: [],
|
||||
final_comments: [
|
||||
Newline,
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
Space,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
@11-21 Malformed(
|
||||
Record(
|
||||
[
|
||||
@12-20 OptionalValue(
|
||||
@12-13 "s",
|
||||
[],
|
||||
@14-20 Apply(
|
||||
@14-15 Var {
|
||||
module_name: "",
|
||||
ident: "s",
|
||||
},
|
||||
[
|
||||
@15-20 RecordUpdate {
|
||||
update: @16-17 Tag(
|
||||
"J",
|
||||
),
|
||||
fields: Collection {
|
||||
items: [],
|
||||
final_comments: [
|
||||
Newline,
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
Space,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
},
|
||||
ann: @22-23 BoundVariable(
|
||||
"p",
|
||||
),
|
||||
},
|
||||
],
|
||||
value_defs: [],
|
||||
},
|
||||
@24-25 SpaceBefore(
|
||||
Var {
|
||||
module_name: "",
|
||||
ident: "y",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
)
|
|
@ -0,0 +1,5 @@
|
|||
Q (
|
||||
"""
|
||||
"""
|
||||
"") : a
|
||||
q
|
|
@ -19,19 +19,24 @@
|
|||
header: TypeHeader {
|
||||
name: @0-1 "Q",
|
||||
vars: [
|
||||
@3-11 Apply(
|
||||
@3-9 StrLiteral(
|
||||
Block(
|
||||
[],
|
||||
@3-11 Malformed(
|
||||
ParensAround(
|
||||
Apply(
|
||||
@3-9 Str(
|
||||
Block(
|
||||
[],
|
||||
),
|
||||
),
|
||||
[
|
||||
@9-11 Str(
|
||||
PlainLine(
|
||||
"",
|
||||
),
|
||||
),
|
||||
],
|
||||
Space,
|
||||
),
|
||||
),
|
||||
[
|
||||
@9-11 StrLiteral(
|
||||
PlainLine(
|
||||
"",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
},
|
|
@ -0,0 +1,4 @@
|
|||
il3 \k -> # w#z
|
||||
CCC @C ( # i
|
||||
t! K) : i
|
||||
C
|
|
@ -32,25 +32,33 @@
|
|||
header: TypeHeader {
|
||||
name: @13-16 "CCC",
|
||||
vars: [
|
||||
@16-18 OpaqueRef(
|
||||
"@C",
|
||||
),
|
||||
@23-26 SpaceBefore(
|
||||
Apply(
|
||||
@23-25 Identifier {
|
||||
ident: "t!",
|
||||
},
|
||||
[
|
||||
@25-26 Tag(
|
||||
"K",
|
||||
),
|
||||
],
|
||||
@16-18 Malformed(
|
||||
OpaqueRef(
|
||||
"@C",
|
||||
),
|
||||
[
|
||||
LineComment(
|
||||
"i",
|
||||
),
|
||||
@23-26 Malformed(
|
||||
ParensAround(
|
||||
SpaceBefore(
|
||||
Apply(
|
||||
@23-25 Var {
|
||||
module_name: "",
|
||||
ident: "t!",
|
||||
},
|
||||
[
|
||||
@25-26 Tag(
|
||||
"K",
|
||||
),
|
||||
],
|
||||
Space,
|
||||
),
|
||||
[
|
||||
LineComment(
|
||||
"i",
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
},
|
|
@ -19,9 +19,9 @@
|
|||
name: @0-1 "A",
|
||||
vars: [
|
||||
@4-5 SpaceBefore(
|
||||
Identifier {
|
||||
ident: "p",
|
||||
},
|
||||
Identifier(
|
||||
"p",
|
||||
),
|
||||
[
|
||||
LineComment(
|
||||
"",
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
A p : e
|
||||
A
|
||||
p : e
|
||||
A
|
|
@ -19,9 +19,9 @@
|
|||
name: @0-1 "A",
|
||||
vars: [
|
||||
@3-4 SpaceBefore(
|
||||
Identifier {
|
||||
ident: "p",
|
||||
},
|
||||
Identifier(
|
||||
"p",
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
vars: [
|
||||
@3-4 SpaceAfter(
|
||||
SpaceBefore(
|
||||
Identifier {
|
||||
ident: "e",
|
||||
},
|
||||
Identifier(
|
||||
"e",
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
header: TypeHeader {
|
||||
name: @0-5 "Model",
|
||||
vars: [
|
||||
@6-14 Identifier {
|
||||
ident: "position",
|
||||
},
|
||||
@6-14 Identifier(
|
||||
"position",
|
||||
),
|
||||
],
|
||||
},
|
||||
ann: @21-164 SpaceBefore(
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
O
|
||||
{ p ?? if
|
||||
a
|
||||
then
|
||||
A
|
||||
else
|
||||
&m } #
|
||||
: e
|
||||
i
|
|
@ -20,9 +20,9 @@
|
|||
name: @0-1 "M",
|
||||
vars: [
|
||||
@4-6 SpaceBefore(
|
||||
Identifier {
|
||||
ident: "im",
|
||||
},
|
||||
Identifier(
|
||||
"im",
|
||||
),
|
||||
[
|
||||
LineComment(
|
||||
"",
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
N (implements) h 0 : B
|
||||
T
|
|
@ -19,9 +19,9 @@
|
|||
name: @0-1 "A",
|
||||
vars: [
|
||||
@4-5 SpaceBefore(
|
||||
Identifier {
|
||||
ident: "p",
|
||||
},
|
||||
Identifier(
|
||||
"p",
|
||||
),
|
||||
[
|
||||
LineComment(
|
||||
"",
|
||||
|
|
|
@ -19,9 +19,9 @@ Defs {
|
|||
header: TypeHeader {
|
||||
name: @0-8 "Bookmark",
|
||||
vars: [
|
||||
@9-10 Identifier {
|
||||
ident: "a",
|
||||
},
|
||||
@9-10 Identifier(
|
||||
"a",
|
||||
),
|
||||
],
|
||||
},
|
||||
typ: @14-53 Record {
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
Zx
|
||||
e #
|
||||
f : i
|
||||
s
|
|
@ -19,12 +19,12 @@
|
|||
header: TypeHeader {
|
||||
name: @0-4 "Blah",
|
||||
vars: [
|
||||
@5-6 Identifier {
|
||||
ident: "a",
|
||||
},
|
||||
@7-8 Identifier {
|
||||
ident: "b",
|
||||
},
|
||||
@5-6 Identifier(
|
||||
"a",
|
||||
),
|
||||
@7-8 Identifier(
|
||||
"b",
|
||||
),
|
||||
],
|
||||
},
|
||||
ann: @11-26 Apply(
|
||||
|
|
|
@ -37,12 +37,12 @@
|
|||
TypeHeader {
|
||||
name: @25-29 "Blah",
|
||||
vars: [
|
||||
@30-31 Identifier {
|
||||
ident: "a",
|
||||
},
|
||||
@32-33 Identifier {
|
||||
ident: "b",
|
||||
},
|
||||
@30-31 Identifier(
|
||||
"a",
|
||||
),
|
||||
@32-33 Identifier(
|
||||
"b",
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
M
|
||||
{ s ?? s
|
||||
{ J &
|
||||
} }
|
||||
{ s ?? s
|
||||
{ J &
|
||||
} } : p
|
||||
y
|
|
@ -1,98 +0,0 @@
|
|||
@0-25 SpaceAfter(
|
||||
Defs(
|
||||
Defs {
|
||||
tags: [
|
||||
EitherIndex(0),
|
||||
],
|
||||
regions: [
|
||||
@0-23,
|
||||
],
|
||||
space_before: [
|
||||
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
||||
],
|
||||
space_after: [
|
||||
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
|
||||
],
|
||||
spaces: [],
|
||||
type_defs: [
|
||||
Alias {
|
||||
header: TypeHeader {
|
||||
name: @0-1 "M",
|
||||
vars: [
|
||||
@1-11 RecordDestructure(
|
||||
[
|
||||
@2-10 OptionalField(
|
||||
"s",
|
||||
@4-10 Apply(
|
||||
@4-5 Var {
|
||||
module_name: "",
|
||||
ident: "s",
|
||||
},
|
||||
[
|
||||
@5-10 RecordUpdate {
|
||||
update: @6-7 Tag(
|
||||
"J",
|
||||
),
|
||||
fields: Collection {
|
||||
items: [],
|
||||
final_comments: [
|
||||
Newline,
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
Space,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
@11-21 RecordDestructure(
|
||||
[
|
||||
@12-20 OptionalField(
|
||||
"s",
|
||||
@14-20 Apply(
|
||||
@14-15 Var {
|
||||
module_name: "",
|
||||
ident: "s",
|
||||
},
|
||||
[
|
||||
@15-20 RecordUpdate {
|
||||
update: @16-17 Tag(
|
||||
"J",
|
||||
),
|
||||
fields: Collection {
|
||||
items: [],
|
||||
final_comments: [
|
||||
Newline,
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
Space,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
},
|
||||
ann: @22-23 BoundVariable(
|
||||
"p",
|
||||
),
|
||||
},
|
||||
],
|
||||
value_defs: [],
|
||||
},
|
||||
@24-25 SpaceBefore(
|
||||
Var {
|
||||
module_name: "",
|
||||
ident: "y",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
)
|
|
@ -1,6 +0,0 @@
|
|||
Q
|
||||
(
|
||||
"""
|
||||
"""
|
||||
"") : a
|
||||
q
|
|
@ -1,5 +0,0 @@
|
|||
il3 \k -> # w#z
|
||||
CCC
|
||||
@C # i
|
||||
(t! K) : i
|
||||
C
|
|
@ -45,12 +45,12 @@ Defs {
|
|||
header: TypeHeader {
|
||||
name: @0-3 "App",
|
||||
vars: [
|
||||
@4-9 Identifier {
|
||||
ident: "state",
|
||||
},
|
||||
@10-18 Identifier {
|
||||
ident: "initData",
|
||||
},
|
||||
@4-9 Identifier(
|
||||
"state",
|
||||
),
|
||||
@10-18 Identifier(
|
||||
"initData",
|
||||
),
|
||||
],
|
||||
},
|
||||
ann: @21-60 Apply(
|
||||
|
@ -70,9 +70,9 @@ Defs {
|
|||
header: TypeHeader {
|
||||
name: @61-65 "Html",
|
||||
vars: [
|
||||
@66-71 Identifier {
|
||||
ident: "state",
|
||||
},
|
||||
@66-71 Identifier(
|
||||
"state",
|
||||
),
|
||||
],
|
||||
},
|
||||
ann: @74-105 Apply(
|
||||
|
@ -89,9 +89,9 @@ Defs {
|
|||
header: TypeHeader {
|
||||
name: @106-115 "Attribute",
|
||||
vars: [
|
||||
@116-121 Identifier {
|
||||
ident: "state",
|
||||
},
|
||||
@116-121 Identifier(
|
||||
"state",
|
||||
),
|
||||
],
|
||||
},
|
||||
ann: @124-160 Apply(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue