Skip to content

Commit b8a9d2d

Browse files
committed
MissingTyRef errors handled
1 parent d3fe4e0 commit b8a9d2d

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

experimental/prolog/lb-compiler/kind_check.pl

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,37 @@
452452
error(missing_ty_var(_, _, TyV, _)),
453453
TyV.var_name.name = "b").
454454

455+
test("\nmodule ModFoo\nsum Foo = MkFoo Bar\nopaque NotBar", [ ]) :-
456+
ty_def_opaque("NotBar", NotBarTyDef),
457+
ty_local_ref_("Bar", BarTyRef),
458+
ntuple([BarTyRef], MkFooProd),
459+
constr("MkFoo", MkFooProd, MkFooConstr),
460+
sum([MkFooConstr], FooTyBody),
461+
ty_def_body("Foo", FooTyBody, FooTyDef),
462+
mod("ModFoo", [NotBarTyDef, FooTyDef], ModFoo),
463+
comp_input([ModFoo], CompIn),
464+
catch(
465+
kind_check(CompIn, _Solution),
466+
error(missing_ty_ref(_, _, TyRef, _)),
467+
TyRef.local_ty_ref.ty_name.name = "Bar").
468+
469+
test("\nmodule ModFoo\nsum Foo = MkFoo Bar\nmodule ModBar\nopaque NotBar", [ ]) :-
470+
ty_def_opaque("NotBar", NotBarTyDef),
471+
mod("ModBar", [NotBarTyDef], ModBar),
472+
ty_foreign_ref_(["ModBar"], "Bar", BarTyRef),
473+
ntuple([BarTyRef], MkFooProd),
474+
constr("MkFoo", MkFooProd, MkFooConstr),
475+
sum([MkFooConstr], FooTyBody),
476+
ty_def_body("Foo", FooTyBody, FooTyDef),
477+
mod("ModFoo", [FooTyDef], ModFoo),
478+
comp_input([ModFoo, ModBar], CompIn),
479+
catch(
480+
kind_check(CompIn, _Solution),
481+
error(missing_ty_ref(_, _, TyRef, _)),
482+
TyRef.foreign_ty_ref.ty_name.name = "Bar").
483+
484+
print_solution(Solution).
485+
455486
:- end_tests(kind_check).
456487

457488
:- multifile prolog:message//1.

0 commit comments

Comments
 (0)