Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional typerep argument in UExerciseInterface. #11910

Merged
merged 6 commits into from
Nov 30, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
fix TypingSpec test
  • Loading branch information
sofiafaro-da committed Nov 30, 2021
commit 400a77019865726c044dd94637d4d2f108b2f2d7
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ class ParsersSpec extends AnyWordSpec with ScalaCheckPropertyChecks with Matcher
"BigNumeric" -> BTBigNumeric,
"RoundingMode" -> BTRoundingMode,
"AnyException" -> BTAnyException,
"TypeRep" -> BTTypeRep,
)

forEvery(testCases)((stringToParse, expectedBuiltinType) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ private[validation] object SpecUtil {
'₁' -> "_1",
'₂' -> "_2",
'₃' -> "_3",
'₄' -> "_4",
'ᵢ' -> "_i",
'⟨' -> "<",
'⟩' -> ">",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -354,8 +354,8 @@ class TypingSpec extends AnyWordSpec with TableDrivenPropertyChecks with Matcher
T"Mod:I → (( Update (ContractId Mod:I) ))",
E"λ (e₁: ContractId Mod:T) (e₂: Int64) → (( exercise @Mod:T Ch e₁ e₂ ))" ->
T"ContractId Mod:T → Int64 → (( Update Decimal ))",
E"λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Optional TypeRep) (e₄: Mod:I → Bool) → (( exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ))" ->
T"ContractId Mod:I → Int64 → (( Update Decimal ))",
E"λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Option TypeRep) (e₄: Mod:I → Bool) → (( exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ))" ->
T"ContractId Mod:I → Int64 → Option TypeRep → (Mod:I → Bool) → (( Update Decimal ))",
E"λ (e₁: Party) (e₂: Int64) → (( exercise_by_key @Mod:T Ch e₁ e₂ ))" ->
T"Party → Int64 → (( Update Decimal ))",
E"λ (e: ContractId Mod:T) → (( fetch @Mod:T e ))" ->
Expand Down Expand Up @@ -800,36 +800,36 @@ class TypingSpec extends AnyWordSpec with TableDrivenPropertyChecks with Matcher
assert(env.interface.lookupTemplateChoice(conTi, n"ChTmpl").isRight)
},
// UpdExerciseInterface
E"λ (e₁: ContractId Mod:U) (e₂: Int64) (e₃: Optional TypeRep) (e₄: Mod:U → Bool) → ⸨ exercise_by_interface @Mod:U ChIface e₁ e₂ e₃ e₄ ⸩" -> //
E"λ (e₁: ContractId Mod:U) (e₂: Int64) (e₃: Option TypeRep) (e₄: Mod:U → Bool) → ⸨ exercise_by_interface @Mod:U ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{
case EUnknownDefinition(
_,
LookupError(Reference.Interface(_), Reference.InterfaceChoice(_, _)),
) =>
},
E"λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Optional TypeRep) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:I Not e₁ e₂ e₃ e₄ ⸩" -> //
E"λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Option TypeRep) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:I Not e₁ e₂ e₃ e₄ ⸩" -> //
{
case EUnknownDefinition(
_,
LookupError(Reference.TemplateChoice(_, _), Reference.InterfaceChoice(_, _)),
) =>
},
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: σ) (e₃: Optional TypeRep) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:T ChIface e₁ e₂ e₃ e₄ ⸩" -> //
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: σ) (e₃: Option TypeRep) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:T ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{ case _: ETypeMismatch => },
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Optional TypeRep) (e₄: Mod:T → Bool) → ⸨ exercise_by_interface @Mod:T ChIface e₁ e₂ e₃ e₄ ⸩" -> //
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Option TypeRep) (e₄: Mod:T → Bool) → ⸨ exercise_by_interface @Mod:T ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{ case _: ETypeMismatch => },
E"Λ (σ : ⋆).λ (e₁: ContractId σ) (e₂: Int64) (e₃: Optional TypeRep) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
E"Λ (σ : ⋆).λ (e₁: ContractId σ) (e₂: Int64) (e₃: Option TypeRep) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{ case _: ETypeMismatch => },
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: σ) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{ case _: ETypeMismatch => },
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Optional σ) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Option σ) (e₄: Mod:I → Bool) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{ case _: ETypeMismatch => },
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Optional TypeRep) (e₄: σ) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Option TypeRep) (e₄: σ) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{ case _: ETypeMismatch => },
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Optional TypeRep) (e₄: σ → Bool) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
E"Λ (σ : ⋆).λ (e₁: ContractId Mod:I) (e₂: Int64) (e₃: Option TypeRep) (e₄: σ → Bool) → ⸨ exercise_by_interface @Mod:I ChIface e₁ e₂ e₃ e₄ ⸩" -> //
{ case _: ETypeMismatch => },
// This verifies that interface choice cannot be exercise by template
E"""λ (e₁: ContractId Mod:Ti) (e: Mod:Ti) (e₂: Int64) (e₃: Optional TypeRep) (e₄: Mod:Ti → Bool) → ⸨ exercise_by_interface @Mod:Ti ChIface e₁ e₂ e₃ e₄ ⸩""" -> //
E"""λ (e₁: ContractId Mod:Ti) (e: Mod:Ti) (e₂: Int64) (e₃: Option TypeRep) (e₄: Mod:Ti → Bool) → ⸨ exercise_by_interface @Mod:Ti ChIface e₁ e₂ e₃ e₄ ⸩""" -> //
{
case EUnknownDefinition(
_,
Expand Down