Skip to content

Commit d4cc420

Browse files
committed
Backport of #22292 (Archi schema reader bug fixes)
1 parent c9514b1 commit d4cc420

File tree

7 files changed

+26
-26
lines changed

7 files changed

+26
-26
lines changed

sdk/daml-lf/api-type-signature/src/main/scala/com/digitalasset/daml/lf/typesig/reader/DamlLfArchiveReader.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ object DamlLfArchiveReader {
1616
\/.fromEither(either).leftMap(err => s"Cannot parse archive: $err")
1717

1818
def readPackage(lf: DamlLf.Archive): String \/ (Ref.PackageId, Ast.PackageSignature) =
19-
fromEither(archive.Reader.readArchive(lf)) flatMap readPackage
19+
fromEither(archive.Reader.readArchive(lf, schemaMode = true)) flatMap readPackage
2020

2121
def readPackage(
2222
packageId: Ref.PackageId,

sdk/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/Decode.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ object Decode {
7474
archive: DamlLf.Archive
7575
): Either[Error, (PackageId, Ast.Package)] =
7676
Reader
77-
.readArchive(archive, schemaMode = true)
77+
.readArchive(archive, schemaMode = false)
7878
.flatMap(decodeArchivePayload)
7979

8080
@throws[Error]
@@ -87,7 +87,7 @@ object Decode {
8787
archive: DamlLf.Archive
8888
): Either[Error, (PackageId, Ast.PackageSignature)] =
8989
Reader
90-
.readArchive(archive, schemaMode = false)
90+
.readArchive(archive, schemaMode = true)
9191
.flatMap(decodeArchivePayloadSchema)
9292

9393
@throws[Error]

sdk/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/DecodeV1.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
3434
def decodePackage( // entry point
3535
packageId: PackageId,
3636
lfPackage: PLF.Package,
37-
onlySchema: Boolean,
37+
schemaMode: Boolean,
3838
): Either[Error, Package] = attempt(NameOf.qualifiedNameOfCurrentFunc) {
3939

4040
val internedStrings = lfPackage.getInternedStringsList.asScala.to(ImmArraySeq)
@@ -65,7 +65,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
6565
IndexedSeq.empty,
6666
Some(dependencyTracker),
6767
None,
68-
onlySchema,
68+
schemaMode,
6969
)
7070

7171
val internedTypes = Work.run(decodeInternedTypes(env0, lfPackage))
@@ -128,7 +128,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
128128
IndexedSeq.empty,
129129
None,
130130
None,
131-
onlySchema = false,
131+
schemaMode = false,
132132
)
133133
val internedTypes = Work.run(decodeInternedTypes(env0, lfSingleModule))
134134
val env = env0.copy(internedTypes = internedTypes)
@@ -199,7 +199,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
199199
internedTypes: collection.IndexedSeq[Type],
200200
optDependencyTracker: Option[PackageDependencyTracker],
201201
optModuleName: Option[ModuleName],
202-
onlySchema: Boolean,
202+
schemaMode: Boolean,
203203
) {
204204

205205
// decode*ForTest -- test entry points
@@ -257,7 +257,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
257257

258258
if (versionIsOlderThan(Features.typeSynonyms)) {
259259
assertEmpty(lfModule.getSynonymsList, "Module.synonyms")
260-
} else if (!onlySchema) {
260+
} else if (!schemaMode) {
261261
// collect type synonyms
262262
lfModule.getSynonymsList.asScala
263263
.foreach { defn =>
@@ -278,7 +278,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
278278

279279
// collect data types
280280
lfModule.getDataTypesList.asScala
281-
.filter(!onlySchema || _.getSerializable)
281+
.filter(!schemaMode || _.getSerializable)
282282
.foreach { defn =>
283283
val defName = handleDottedName(
284284
defn.getNameCase,
@@ -293,7 +293,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
293293
defs += (defName -> d)
294294
}
295295

296-
if (!onlySchema) {
296+
if (!schemaMode) {
297297
// collect values
298298
lfModule.getValuesList.asScala.foreach { defn =>
299299
val nameWithType = defn.getNameWithType
@@ -325,7 +325,7 @@ private[archive] class DecodeV1(minor: LV.Minor) {
325325

326326
if (versionIsOlderThan(Features.exceptions)) {
327327
assertEmpty(lfModule.getExceptionsList, "Module.exceptions")
328-
} else if (!onlySchema) {
328+
} else if (!schemaMode) {
329329
lfModule.getExceptionsList.asScala
330330
.foreach { defn =>
331331
val defName = getInternedDottedName(defn.getNameInternedDname)

sdk/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/DecodeV2.scala

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ private[archive] class DecodeV2(minor: LV.Minor) {
3030
def decodePackage( // entry point
3131
packageId: PackageId,
3232
lfPackage: PLF.Package,
33-
onlySchema: Boolean,
33+
schemaMode: Boolean,
3434
): Either[Error, Package] = attempt(NameOf.qualifiedNameOfCurrentFunc) {
3535

3636
val internedStrings = lfPackage.getInternedStringsList.asScala.to(ImmArraySeq)
@@ -56,7 +56,7 @@ private[archive] class DecodeV2(minor: LV.Minor) {
5656
IndexedSeq.empty,
5757
Some(dependencyTracker),
5858
None,
59-
onlySchema,
59+
schemaMode,
6060
)
6161

6262
val internedTypes = Work.run(decodeInternedTypes(env0, lfPackage))
@@ -121,7 +121,7 @@ private[archive] class DecodeV2(minor: LV.Minor) {
121121
IndexedSeq.empty,
122122
None,
123123
None,
124-
onlySchema = false,
124+
schemaMode = false,
125125
)
126126
val internedTypes = Work.run(decodeInternedTypes(env0, lfSingleModule))
127127
val env = env0.copy(internedTypes = internedTypes)
@@ -189,7 +189,7 @@ private[archive] class DecodeV2(minor: LV.Minor) {
189189
internedTypes: collection.IndexedSeq[Type],
190190
optDependencyTracker: Option[PackageDependencyTracker],
191191
optModuleName: Option[ModuleName],
192-
onlySchema: Boolean,
192+
schemaMode: Boolean,
193193
) {
194194

195195
// decode*ForTest -- test entry points
@@ -237,7 +237,7 @@ private[archive] class DecodeV2(minor: LV.Minor) {
237237
val exceptions = mutable.ArrayBuffer[(DottedName, DefException)]()
238238
val interfaces = mutable.ArrayBuffer[(DottedName, DefInterface)]()
239239

240-
if (!onlySchema) {
240+
if (!schemaMode) {
241241
// collect type synonyms
242242
lfModule.getSynonymsList.asScala
243243
.foreach { defn =>
@@ -251,15 +251,15 @@ private[archive] class DecodeV2(minor: LV.Minor) {
251251

252252
// collect data types
253253
lfModule.getDataTypesList.asScala
254-
.filter(!onlySchema || _.getSerializable)
254+
.filter(!schemaMode || _.getSerializable)
255255
.foreach { defn =>
256256
val defName = getInternedDottedName(defn.getNameInternedDname)
257257
currentDefinitionRef = Some(DefinitionRef(packageId, QualifiedName(moduleName, defName)))
258258
val d = Work.run(decodeDefDataType(defn))
259259
defs += (defName -> d)
260260
}
261261

262-
if (!onlySchema) {
262+
if (!schemaMode) {
263263
// collect values
264264
lfModule.getValuesList.asScala.foreach { defn =>
265265
val nameWithType = defn.getNameWithType
@@ -280,7 +280,7 @@ private[archive] class DecodeV2(minor: LV.Minor) {
280280

281281
if (versionIsOlderThan(LV.Features.exceptions)) {
282282
assertEmpty(lfModule.getExceptionsList, "Module.exceptions")
283-
} else if (!onlySchema) {
283+
} else if (!schemaMode) {
284284
lfModule.getExceptionsList.asScala
285285
.foreach { defn =>
286286
val defName = getInternedDottedName(defn.getNameInternedDname)
@@ -792,14 +792,14 @@ private[archive] class DecodeV2(minor: LV.Minor) {
792792
}
793793

794794
private def decodeExpr[T](lfExpr: PLF.Expr, definition: String)(k: Expr => Work[T]): Work[T] =
795-
if (onlySchema)
795+
if (schemaMode)
796796
k(EUnit) // we can call k directly because we know there is no recursion on decodeExpr
797797
else
798798
Work.Bind(Work.Delay(() => decodeExpr1(lfExpr, definition)), k)
799799

800800
private def decodeExpr1(lfExpr: PLF.Expr, definition: String): Work[Expr] = {
801-
if (onlySchema)
802-
throw new IllegalStateException("decodeExpr1 called in onlySchema mode")
801+
if (schemaMode)
802+
throw new IllegalStateException("decodeExpr1 called in schema mode")
803803
Work.bind(lfExpr.getSumCase match {
804804
case PLF.Expr.SumCase.VAR_INTERNED_STR =>
805805
Ret(EVar(getInternedName(lfExpr.getVarInternedStr)))

sdk/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/Reader.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ object Reader {
4848
*/
4949
def readArchive(
5050
lf: DamlLf.Archive,
51-
schemaMode: Boolean = false,
51+
schemaMode: Boolean,
5252
): Either[Error, ArchivePayload] = for {
5353
theirHash <- lf.getHashFunction match {
5454
case DamlLf.HashFunction.SHA256 =>

sdk/daml-lf/archive/src/test/scala/com/digitalasset/daml/lf/archive/DecodeV1Spec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class DecodeV1Spec
9595
typeTable,
9696
None,
9797
Some(dummyModuleName),
98-
onlySchema = false,
98+
schemaMode = false,
9999
)
100100
}
101101

@@ -907,7 +907,7 @@ class DecodeV1Spec
907907
IndexedSeq.empty,
908908
None,
909909
None,
910-
onlySchema = false,
910+
schemaMode = false,
911911
)
912912
val parseError =
913913
the[Error.Parsing] thrownBy (decoder

sdk/daml-lf/archive/src/test/scala/com/digitalasset/daml/lf/archive/DecodeV2Spec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class DecodeV2Spec
9292
typeTable,
9393
None,
9494
Some(dummyModuleName),
95-
onlySchema = false,
95+
schemaMode = false,
9696
)
9797
}
9898

0 commit comments

Comments
 (0)