mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
Reinstate WronglyTypedContractSoft as Dev error (#16891)
This commit is contained in:
parent
81272e313d
commit
b55d80a881
@ -203,15 +203,6 @@ final class Conversions(
|
||||
.setContractRef(mkContractRef(coid, actual))
|
||||
.setExpected(convertIdentifier(expected))
|
||||
)
|
||||
// TODO https://github.com/digital-asset/daml/issues/16151
|
||||
// Reinstate when #16859 lands
|
||||
/*case WronglyTypedContractSoft(coid, expected, accepted, actual) =>
|
||||
builder.setWronglyTypedContractSoft(
|
||||
proto.ScenarioError.WronglyTypedContractSoft.newBuilder
|
||||
.setContractRef(mkContractRef(coid, actual))
|
||||
.setExpected(convertIdentifier(expected))
|
||||
.addAllAccepted(accepted.map(convertIdentifier(_)).asJava)
|
||||
)*/
|
||||
case ContractDoesNotImplementInterface(interfaceId, coid, templateId) =>
|
||||
builder.setContractDoesNotImplementInterface(
|
||||
proto.ScenarioError.ContractDoesNotImplementInterface.newBuilder
|
||||
@ -268,6 +259,13 @@ final class Conversions(
|
||||
cgfBuilder.setByInterface(convertIdentifier(ifaceId))
|
||||
)
|
||||
builder.setChoiceGuardFailed(cgfBuilder.build)
|
||||
case Dev.WronglyTypedContractSoft(coid, expected, accepted, actual) =>
|
||||
builder.setWronglyTypedContractSoft(
|
||||
proto.ScenarioError.WronglyTypedContractSoft.newBuilder
|
||||
.setContractRef(mkContractRef(coid, actual))
|
||||
.setExpected(convertIdentifier(expected))
|
||||
.addAllAccepted(accepted.map(convertIdentifier(_)).asJava)
|
||||
)
|
||||
}
|
||||
case err @ Dev(_, _) =>
|
||||
builder.setCrash(s"Unexpected Dev error: " + err.toString)
|
||||
|
@ -98,21 +98,6 @@ private[lf] object Pretty {
|
||||
) & prettyTypeConName(
|
||||
actual
|
||||
)
|
||||
// TODO https://github.com/digital-asset/daml/issues/16151
|
||||
// Reinstate when #16859 lands
|
||||
/*case WronglyTypedContractSoft(coid, expected, accepted, actual) =>
|
||||
text("Update failed due to wrongly typed contract id") & prettyContractId(coid) /
|
||||
text("Expected contract of type") & prettyTypeConName(expected) & (
|
||||
if (accepted.nonEmpty)
|
||||
intercalate(comma + lineOrSpace, accepted.map(prettyTypeConName))
|
||||
.tightBracketBy(text("or one of its ancestors: ("), char(')'))
|
||||
else
|
||||
Doc.empty
|
||||
) & text(
|
||||
"but got"
|
||||
) & prettyTypeConName(
|
||||
actual
|
||||
)*/
|
||||
case ContractDoesNotImplementInterface(interfaceId, coid, templateId) =>
|
||||
text("Update failed due to contract") & prettyContractId(coid) & text(
|
||||
"not implementing an interface"
|
||||
@ -215,6 +200,19 @@ private[lf] object Pretty {
|
||||
case None => text("by template")
|
||||
case Some(interfaceId) => text("by interface") & prettyTypeConName(interfaceId)
|
||||
})
|
||||
case Dev.WronglyTypedContractSoft(coid, expected, accepted, actual) =>
|
||||
text("Update failed due to wrongly typed contract id") & prettyContractId(coid) /
|
||||
text("Expected contract of type") & prettyTypeConName(expected) & (
|
||||
if (accepted.nonEmpty)
|
||||
intercalate(comma + lineOrSpace, accepted.map(prettyTypeConName))
|
||||
.tightBracketBy(text("or one of its ancestors: ("), char(')'))
|
||||
else
|
||||
Doc.empty
|
||||
) & text(
|
||||
"but got"
|
||||
) & prettyTypeConName(
|
||||
actual
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1110,10 +1110,10 @@ private[lf] object SBuiltin {
|
||||
Control.Value(record.copy(id = templateId))
|
||||
} else {
|
||||
Control.Error(
|
||||
// TODO https://github.com/digital-asset/daml/issues/16151
|
||||
// Use an existing error constructor until #16859 lands
|
||||
IE.WronglyTypedContract(coid, templateId, actualTemplateId)
|
||||
// IE.WronglyTypedContractSoft(coid, templateId, acceptedTemplateIds, actualTemplateId)
|
||||
IE.Dev(
|
||||
NameOf.qualifiedNameOfCurrentFunc,
|
||||
IE.Dev.WronglyTypedContractSoft(coid, templateId, acceptedTemplateIds, actualTemplateId),
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -109,20 +109,6 @@ object Error {
|
||||
actual: TypeConName,
|
||||
) extends Error
|
||||
|
||||
// TODO: https://github.com/digital-asset/daml/issues/16151
|
||||
// Reinstate when #16859 lands
|
||||
/*
|
||||
/** We tried to soft fetch / soft exercise a contract of the wrong type --
|
||||
* see <https://github.com/digital-asset/daml/issues/16151>.
|
||||
*/
|
||||
final case class WronglyTypedContractSoft(
|
||||
coid: ContractId,
|
||||
expected: TypeConName,
|
||||
accepted: List[TypeConName],
|
||||
actual: TypeConName,
|
||||
) extends Error
|
||||
*/
|
||||
|
||||
/** We tried to fetch / exercise a contract by interface, but
|
||||
* the contract does not implement this interface.
|
||||
*/
|
||||
@ -175,6 +161,18 @@ object Error {
|
||||
byInterface: Option[TypeConName],
|
||||
) extends Error
|
||||
|
||||
// TODO https://github.com/digital-asset/daml/issues/16151
|
||||
// Move outside Dev when the feature goes GA.
|
||||
/** We tried to soft fetch / soft exercise a contract of the wrong type --
|
||||
* see <https://github.com/digital-asset/daml/issues/16151>.
|
||||
*/
|
||||
final case class WronglyTypedContractSoft(
|
||||
coid: ContractId,
|
||||
expected: TypeConName,
|
||||
accepted: List[TypeConName],
|
||||
actual: TypeConName,
|
||||
) extends Error
|
||||
|
||||
final case class Limit(error: Limit.Error) extends Error
|
||||
|
||||
object Limit {
|
||||
|
Loading…
Reference in New Issue
Block a user