Original PR: https://github.com/apple/pkl/pull/1180 Author: @stackoverflow Created: 8/20/2025 Status: 🔄 Open
Base: main ← Head: fix-cyclic-dependencies
main
fix-cyclic-dependencies
2d4f6bc
38c1873
70c34b0
4e1a856
bd74777
b68bfff
cb8059f
18 files changed (+143 additions, -9 deletions)
📝 pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java (+28 -2) 📝 pkl-core/src/main/java/org/pkl/core/ast/expression/literal/AmendModuleNode.java (+12 -4) 📝 pkl-core/src/main/java/org/pkl/core/ast/member/ClassNode.java (+4 -1) 📝 pkl-core/src/main/java/org/pkl/core/ast/type/ResolveDeclaredTypeNode.java (+30 -1) 📝 pkl-core/src/main/java/org/pkl/core/runtime/ModuleInfo.java (+30 -0) 📝 pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java (+4 -0) 📝 pkl-core/src/main/java/org/pkl/core/runtime/VmTyped.java (+5 -1) 📝 pkl-core/src/main/resources/org/pkl/core/errorMessages.properties (+3 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/Foo.pkl (+5 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/Qux.pkl (+3 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/amendsFoo.pkl (+1 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/amendsFooLv2.pkl (+1 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/input/errors/cyclicalAmendsType.pkl (+3 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/input/modules/cycles.pkl (+3 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/input/modules/cycles2.pkl (+3 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/output/errors/cyclicalAmendsType.err (+6 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/output/modules/cycles.pcf (+1 -0) ➕ pkl-core/src/test/files/LanguageSnippetTests/output/modules/cycles2.pcf (+1 -0)
pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java
pkl-core/src/main/java/org/pkl/core/ast/expression/literal/AmendModuleNode.java
pkl-core/src/main/java/org/pkl/core/ast/member/ClassNode.java
pkl-core/src/main/java/org/pkl/core/ast/type/ResolveDeclaredTypeNode.java
pkl-core/src/main/java/org/pkl/core/runtime/ModuleInfo.java
pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java
pkl-core/src/main/java/org/pkl/core/runtime/VmTyped.java
pkl-core/src/main/resources/org/pkl/core/errorMessages.properties
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/Foo.pkl
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/Qux.pkl
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/amendsFoo.pkl
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/amendsFooLv2.pkl
pkl-core/src/test/files/LanguageSnippetTests/input/errors/cyclicalAmendsType.pkl
pkl-core/src/test/files/LanguageSnippetTests/input/modules/cycles.pkl
pkl-core/src/test/files/LanguageSnippetTests/input/modules/cycles2.pkl
pkl-core/src/test/files/LanguageSnippetTests/output/errors/cyclicalAmendsType.err
pkl-core/src/test/files/LanguageSnippetTests/output/modules/cycles.pcf
pkl-core/src/test/files/LanguageSnippetTests/output/modules/cycles2.pcf
In some very specific scenarios cyclic dependencies may lead to a null pointer due to the module not being properly initialized. Fixes #1183.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
No dependencies set.
The note is not visible to the blocked user.
📋 Pull Request Information
Original PR: https://github.com/apple/pkl/pull/1180
Author: @stackoverflow
Created: 8/20/2025
Status: 🔄 Open
Base:
main← Head:fix-cyclic-dependencies📝 Commits (7)
2d4f6bcFix cyclic dependencies bug38c1873Revert "Fix cyclic dependencies bug"70c34b0Properly fix not initialized cyclical dependencies for amending modules.4e1a856Spotlessbd74777Fix review remarksb68bfffFix errorscb8059fThrow on uninitialized module📊 Changes
18 files changed (+143 additions, -9 deletions)
View changed files
📝
pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java(+28 -2)📝
pkl-core/src/main/java/org/pkl/core/ast/expression/literal/AmendModuleNode.java(+12 -4)📝
pkl-core/src/main/java/org/pkl/core/ast/member/ClassNode.java(+4 -1)📝
pkl-core/src/main/java/org/pkl/core/ast/type/ResolveDeclaredTypeNode.java(+30 -1)📝
pkl-core/src/main/java/org/pkl/core/runtime/ModuleInfo.java(+30 -0)📝
pkl-core/src/main/java/org/pkl/core/runtime/VmLanguage.java(+4 -0)📝
pkl-core/src/main/java/org/pkl/core/runtime/VmTyped.java(+5 -1)📝
pkl-core/src/main/resources/org/pkl/core/errorMessages.properties(+3 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/Foo.pkl(+5 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/Qux.pkl(+3 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/amendsFoo.pkl(+1 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/input-helper/cycles/amendsFooLv2.pkl(+1 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/input/errors/cyclicalAmendsType.pkl(+3 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/input/modules/cycles.pkl(+3 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/input/modules/cycles2.pkl(+3 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/output/errors/cyclicalAmendsType.err(+6 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/output/modules/cycles.pcf(+1 -0)➕
pkl-core/src/test/files/LanguageSnippetTests/output/modules/cycles2.pcf(+1 -0)📄 Description
In some very specific scenarios cyclic dependencies may lead to a null pointer due to the module not being properly initialized.
Fixes #1183.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.