Update tests again

This commit is contained in:
Gaith Hallak 2022-08-03 20:11:23 +04:00
parent a87eb36778
commit d4e5de732d
3 changed files with 23 additions and 13 deletions

View File

@ -202,6 +202,7 @@ compilable_contracts() ->
"polymorphism_contract_interface_extensions",
"polymorphism_contract_interface_same_decl_multi_interface",
"polymorphism_contract_interface_same_name_same_type",
"polymorphism_variance_switching_chain_create",
"missing_init_fun_state_unit",
"complex_compare_leq",
"complex_compare",
@ -1025,17 +1026,17 @@ failing_contracts() ->
"Cannot unify `Animal` and `Cat` in a covariant context\n"
"when checking the type of the pattern `q15 : oracle_query(Cat, Cat)` against the expected type `oracle_query(Cat, Animal)`">>
])
, ?TYPE_ERROR(polymorphism_variance_switching_chain_create,
[<<?Pos(26,23)
, ?TYPE_ERROR(polymorphism_variance_switching_chain_create_fail,
[<<?Pos(9,22)
"I is not implemented.\n"
"when resolving arguments of variadic function `Chain.create`">>,
<<?Pos(27,13)
"Cannot unify `I` and `C1` in a covariant context\n"
"when checking the type of the pattern `c2 : C1` against the expected type `I`">>,
<<?Pos(27,23)
<<?Pos(10,13)
"Cannot unify `I` and `C` in a covariant context\n"
"when checking the type of the pattern `c2 : C` against the expected type `I`">>,
<<?Pos(10,22)
"I is not implemented.\n"
"when resolving arguments of variadic function `Chain.create`">>,
<<?Pos(28,23)
<<?Pos(11,22)
"I is not implemented.\n"
"when resolving arguments of variadic function `Chain.create`">>
])

View File

@ -23,10 +23,7 @@ main contract Main =
Make.new(c)
stateful entrypoint test3() =
let c1 : I = Chain.create() // fails
let c2 : C1 = Chain.create() : I // fails
let c3 = Chain.create() : I // fails
let c4 = Chain.create() : C1 // succeeds
let c5 : I = Chain.create() : C1 // succeeds
let c6 : C1 = Chain.create() // succeeds
let c1 = Chain.create() : C1 // succeeds
let c2 : I = Chain.create() : C1 // succeeds
let c3 : C1 = Chain.create() // succeeds
()

View File

@ -0,0 +1,12 @@
contract interface I =
entrypoint f : () => int
contract C : I =
entrypoint f() = 123
main contract Main =
stateful entrypoint test() =
let c1 : I = Chain.create() // fails
let c2 : C = Chain.create() : I // fails
let c3 = Chain.create() : I // fails
()