pkl / PR 1768

Add inference for implicitly typed `new` in method arguments

apple/pkl#1768 mergedmixed

+677/−322lines
34files
41comments
2026-07-13opened
2026-09-02merged

What it touches

main: 30 test: 4

Modules: pkl-core (34)

Architectural impact (arcade-agent diff_impact)

29files mapped to the graph
391entities in those files
Corecomponents
1895entities within 3 hops downstream

Most depended-upon changed entities

EntityDependents
org.pkl.core.ast.builder.AstBuilder27
org.pkl.core.ast.expression.member.InferParentWithinMethodNode17
org.pkl.core.ast.expression.member.InferParentWithinObjectMethodNode17
org.pkl.core.ast.expression.member.InvokeMethodDirectNode17
org.pkl.core.ast.expression.member.InvokeMethodVirtualNode13
org.pkl.core.ast.member.ClassMethod8
org.pkl.core.ast.expression.primary.ExecuteCustomThisWithRootNode4
org.pkl.core.ast.expression.member.AbstractInferParentNode1

Computed against the current default branch, not the PR base commit; files renamed or deleted since then are unmatched. Downstream counts are a reverse-dependency closure to depth 3 and over-approximate real blast radius.

Files

mainpkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java
mainpkl-core/src/main/java/org/pkl/core/ast/builder/SymbolTable.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/generator/GeneratorPredicateMemberNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/AbstractInferParentFromMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/AbstractInferParentNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/AbstractInvokeLexicalMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/AbstractInvokeLexicalOrQualifiedMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/AbstractInvokeMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/AbstractInvokeQualifiedMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InferParentWithinMethodArgumentNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InferParentWithinMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InferParentWithinObjectMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeLexicalClassMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeLexicalObjectMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeMethodDirectNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeMethodVirtualNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeQualifiedClassMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeQualifiedObjectMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeSuperMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/primary/ExecuteCustomThisWithRootNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/ClassMethod.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/FunctionNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/Method.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/ObjectMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/PropertyTypeNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/type/GetParentForTypeNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/type/IdentityMixinNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java
mainpkl-core/src/main/java/org/pkl/core/runtime/VmUtils.java
mainpkl-core/src/main/resources/org/pkl/core/errorMessages.properties
testpkl-core/src/test/files/LanguageSnippetTests/input/methods/inferParameterType.pkl
testpkl-core/src/test/files/LanguageSnippetTests/output/basic/new.pcf
testpkl-core/src/test/files/LanguageSnippetTests/output/basic/newType.pcf
testpkl-core/src/test/files/LanguageSnippetTests/output/methods/inferParameterType.pcf