Check if receiver is a module object in relativePathTo (#1650)

Closes #1649
This commit is contained in:
Daniel Chao
2026-06-24 11:48:57 +02:00
committed by GitHub
parent dd6939ab3f
commit f61a5cf541
6 changed files with 57 additions and 9 deletions
@@ -0,0 +1,7 @@
local objectThatAmendsModule = (module) {
// add a local property to force this into a new object amends;
// empty object amends are optimized away.
local qux = 1
}
res = objectThatAmendsModule.relativePathTo(module)
@@ -0,0 +1,8 @@
local objectThatAmendsModule = (module) {
// add a local property to force this into a new object amends;
// empty object amends are optimized away.
local qux = 1
}
res = module.relativePathTo(objectThatAmendsModule)
@@ -0,0 +1,14 @@
–– Pkl Error ––
Expected a module as the receiver, but got an object that amends a module.
x | res = objectThatAmendsModule.relativePathTo(module)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at relativePathToNotAModule1#res (file:///$snippetsDir/input/errors/relativePathToNotAModule1.pkl)
xxx | renderer.renderDocument(value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at pkl.base#Module.output.text (pkl:base)
xxx | if (renderer is BytesRenderer) renderer.renderDocument(value) else text.encodeToBytes("UTF-8")
^^^^
at pkl.base#Module.output.bytes (pkl:base)
@@ -0,0 +1,14 @@
–– Pkl Error ––
Expected a module as argument, but got an object that amends a module.
x | res = module.relativePathTo(objectThatAmendsModule)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at relativePathToNotAModule2#res (file:///$snippetsDir/input/errors/relativePathToNotAModule2.pkl)
xxx | renderer.renderDocument(value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at pkl.base#Module.output.text (pkl:base)
xxx | if (renderer is BytesRenderer) renderer.renderDocument(value) else text.encodeToBytes("UTF-8")
^^^^
at pkl.base#Module.output.bytes (pkl:base)