mirror of
https://github.com/roc-lang/roc.git
synced 2025-07-24 06:55:15 +00:00
parent
e674c33b89
commit
fc1617bf17
3 changed files with 139 additions and 8 deletions
|
@ -7050,4 +7050,55 @@ mod solve_expr {
|
|||
&["fun : {} -[[thunk(5) [A Str]*, thunk(5) { a : Str }]]-> Str",]
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn check_phantom_type() {
|
||||
infer_eq_without_problem(
|
||||
indoc!(
|
||||
r#"
|
||||
F a b := b
|
||||
|
||||
foo : F Str Str -> F U8 Str
|
||||
|
||||
x : F Str Str
|
||||
|
||||
foo x
|
||||
"#
|
||||
),
|
||||
"F U8 Str",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn infer_phantom_type_flow() {
|
||||
infer_eq_without_problem(
|
||||
indoc!(
|
||||
r#"
|
||||
F a b := b
|
||||
|
||||
foo : _ -> F U8 Str
|
||||
foo = \it -> it
|
||||
|
||||
foo
|
||||
"#
|
||||
),
|
||||
"F U8 Str -> F U8 Str",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn infer_unbound_phantom_type_star() {
|
||||
infer_eq_without_problem(
|
||||
indoc!(
|
||||
r#"
|
||||
F a b := b
|
||||
|
||||
foo = \@F {} -> @F ""
|
||||
|
||||
foo
|
||||
"#
|
||||
),
|
||||
"F * {}* -> F * Str",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue