From 9830befbd66e457340ffa4c2bcd8f09a99fceb51 Mon Sep 17 00:00:00 2001 From: Edward Peters <11288157+edwardpeters@users.noreply.github.com> Date: Fri, 22 Mar 2024 08:43:33 -0700 Subject: [PATCH 1/2] fix for dealiasing extractor --- .../runtime/src/org/finos/morphir/runtime/Extractors.scala | 4 ++-- .../org/finos/morphir/runtime/TypeCheckerTests.scala.scala | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/morphir/runtime/src/org/finos/morphir/runtime/Extractors.scala b/morphir/runtime/src/org/finos/morphir/runtime/Extractors.scala index 92d4c645d..57a8bf8fb 100644 --- a/morphir/runtime/src/org/finos/morphir/runtime/Extractors.scala +++ b/morphir/runtime/src/org/finos/morphir/runtime/Extractors.scala @@ -149,9 +149,9 @@ object Extractors { tpe match { case NativeRef(_, _) => None case Type.Reference(_, typeName, typeArgs) => - val lookedUp = dists.lookupTypeSpecification(typeName.packagePath, typeName.modulePath, typeName.localName) + val lookedUp = dists.lookupTypeDefinition(typeName.packagePath, typeName.modulePath, typeName.localName) lookedUp match { - case Right(T.Specification.TypeAliasSpecification(typeParams, expr)) => + case Right(T.Definition.TypeAlias(typeParams, expr)) => val newBindings = typeParams.zip(typeArgs).toMap Some(Utils.applyBindings(expr, newBindings)) case _ => None // Missing name, but failing extractors cause problems diff --git a/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala b/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala index a471cc303..89d8ec6e5 100644 --- a/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala +++ b/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala @@ -22,6 +22,7 @@ object TypeCheckerTests extends MorphirBaseSpec { irFilePath <- ZIO.succeed(os.pwd / "examples" / "morphir-elm-projects" / "evaluator-tests" / "morphir-ir.json") _ <- Console.printLine(s"Loading distribution from $irFilePath") dist <- EvaluationLibrary.loadDistributionFromFileZIO(irFilePath.toString) + } yield MorphirRuntime.quick(dist)) val typeCheckerLayer: ZLayer[Any, Throwable, TypeChecker] = @@ -29,7 +30,8 @@ object TypeCheckerTests extends MorphirBaseSpec { irFilePath <- ZIO.succeed(os.pwd / "examples" / "morphir-elm-projects" / "evaluator-tests" / "morphir-ir.json") _ <- Console.printLine(s"Loading distribution from $irFilePath") dist <- EvaluationLibrary.loadDistributionFromFileZIO(irFilePath.toString) - } yield new TypeChecker(Distributions(dist))) + unitTestDist <- EvaluationLibrary.loadDistributionFromFileZIO("morphir-elm/sdks/morphir-unit-test/morphir-ir.json") + } yield new TypeChecker(Distributions(dist, unitTestDist))) def testTypeConforms(tpe1: UType, tpe2: UType)(expectedErrors: Int): ZIO[TypeChecker, Throwable, TestResult] = ZIO.serviceWithZIO[TypeChecker] { checker => From e7f66f91625b90ae1a2077e507cc207cf6268e58 Mon Sep 17 00:00:00 2001 From: Edward Peters <11288157+edwardpeters@users.noreply.github.com> Date: Fri, 22 Mar 2024 08:45:48 -0700 Subject: [PATCH 2/2] Reformatting --- .../src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala b/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala index 89d8ec6e5..715e4bd64 100644 --- a/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala +++ b/morphir/runtime/test/jvm/src/org/finos/morphir/runtime/TypeCheckerTests.scala.scala @@ -30,7 +30,8 @@ object TypeCheckerTests extends MorphirBaseSpec { irFilePath <- ZIO.succeed(os.pwd / "examples" / "morphir-elm-projects" / "evaluator-tests" / "morphir-ir.json") _ <- Console.printLine(s"Loading distribution from $irFilePath") dist <- EvaluationLibrary.loadDistributionFromFileZIO(irFilePath.toString) - unitTestDist <- EvaluationLibrary.loadDistributionFromFileZIO("morphir-elm/sdks/morphir-unit-test/morphir-ir.json") + unitTestDist <- + EvaluationLibrary.loadDistributionFromFileZIO("morphir-elm/sdks/morphir-unit-test/morphir-ir.json") } yield new TypeChecker(Distributions(dist, unitTestDist))) def testTypeConforms(tpe1: UType, tpe2: UType)(expectedErrors: Int): ZIO[TypeChecker, Throwable, TestResult] =