From 7ed88e250ba6ce440d6b09538cc9ce62e2b03645 Mon Sep 17 00:00:00 2001 From: Jen Basch Date: Tue, 22 Sep 2026 08:26:03 -0700 Subject: [PATCH] Add `VmType` intermediate representation for types (#1838) --- .idea/inspectionProfiles/Project_Default.xml | 3 +- .../ast/expression/binary/SubscriptNode.java | 2 +- .../literal/CheckIsAnnotationClassNode.java | 4 +- .../member/AbstractInferParentNode.java | 2 +- .../expression/member/ReadPropertyNode.java | 5 +- .../org/pkl/core/ast/member/ClassNode.java | 2 +- .../org/pkl/core/ast/member/FunctionNode.java | 5 + .../java/org/pkl/core/ast/type/TypeNode.java | 1186 +++++------------ .../pkl/core/ast/type/UnresolvedTypeNode.java | 6 +- .../ast/type/VmTypeMismatchException.java | 56 +- .../pkl/core/runtime/CommandSpecParser.java | 675 ++++++---- .../org/pkl/core/runtime/MirrorFactories.java | 11 +- .../java/org/pkl/core/runtime/VmClass.java | 19 +- .../pkl/core/runtime/VmListingOrMapping.java | 2 +- .../org/pkl/core/runtime/VmReference.java | 381 ++---- .../java/org/pkl/core/runtime/VmType.java | 767 +++++++++++ .../org/pkl/core/runtime/VmTypeAlias.java | 4 + .../java/org/pkl/core/runtime/VmTypes.java | 1 + .../core/stdlib/protobuf/RendererNodes.java | 18 +- .../org/pkl/core/errorMessages.properties | 2 +- .../input/api/reference.pkl | 3 + .../output/api/reference.pcf | 1 + .../output/errors/reference13.err | 2 +- .../output/errors/reference14.err | 2 +- .../output/errors/reference26.err | 4 +- .../output/errors/reference7.err | 6 +- .../output/types/classTypeErr11.err | 2 +- .../output/types/classTypeErr12.err | 2 +- .../output/types/classTypeErr13.err | 2 +- .../output/types/classTypeErr4.err | 2 +- .../output/types/classTypeErr5.err | 2 +- .../output/types/classTypeErr6.err | 2 +- .../output/types/classTypeErr7.err | 2 +- .../output/types/classTypeErr8.err | 2 +- .../pkl/core/runtime/CommandSpecParserTest.kt | 5 +- .../kotlin/org/pkl/core/runtime/VmTypeTest.kt | 450 +++++++ 36 files changed, 2162 insertions(+), 1478 deletions(-) create mode 100644 pkl-core/src/main/java/org/pkl/core/runtime/VmType.java create mode 100644 pkl-core/src/test/kotlin/org/pkl/core/runtime/VmTypeTest.kt diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index c23e489e3..88dc4ee1d 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -12,6 +12,7 @@