diff --git a/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt b/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt
index ad153aafb..891eb200a 100644
--- a/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt
+++ b/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt
@@ -751,6 +751,12 @@ class JavaCodeGenerator(
when (this) {
PType.UNKNOWN -> OBJECT.nullableIf(nullable)
PType.NOTHING -> TypeName.VOID
+ PType.MODULE,
+ PType.THIS ->
+ // TODO: support self types: `class Foo>`
+ throw JavaCodeGeneratorException(
+ "Pkl `${this}` types are not supported by the Java code generator."
+ )
is PType.StringLiteral -> STRING.nullableIf(nullable)
is PType.Class -> {
// if in doubt, spell it out
diff --git a/pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/KotlinCodeGenerator.kt b/pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/KotlinCodeGenerator.kt
index 26a845188..c2327c747 100644
--- a/pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/KotlinCodeGenerator.kt
+++ b/pkl-codegen-kotlin/src/main/kotlin/org/pkl/codegen/kotlin/KotlinCodeGenerator.kt
@@ -649,6 +649,12 @@ class KotlinCodeGenerator(
when (this) {
PType.UNKNOWN -> ANY_NULL
PType.NOTHING -> NOTHING
+ PType.MODULE,
+ PType.THIS ->
+ // TODO: support self types: `class Foo>`
+ throw KotlinCodeGeneratorException(
+ "Pkl `${this}` types are not supported by the Kotlin code generator."
+ )
is PType.StringLiteral -> STRING
is PType.Class -> {
// if in doubt, spell it out
diff --git a/pkl-core/src/main/java/org/pkl/core/PType.java b/pkl-core/src/main/java/org/pkl/core/PType.java
index 8312de05d..3bd073bd5 100644
--- a/pkl-core/src/main/java/org/pkl/core/PType.java
+++ b/pkl-core/src/main/java/org/pkl/core/PType.java
@@ -57,6 +57,17 @@ public abstract class PType implements Serializable {
}
};
+ /** The {@code this} type. */
+ public static final PType THIS =
+ new PType() {
+ @Serial private static final long serialVersionUID = 0L;
+
+ @Override
+ public String toString() {
+ return "this";
+ }
+ };
+
private PType() {}
public List getTypeArguments() {
diff --git a/pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java b/pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java
index ce8d39731..36e1b83ef 100644
--- a/pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java
+++ b/pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java
@@ -131,6 +131,7 @@ import org.pkl.core.ast.expression.primary.GetMemberKeyNode;
import org.pkl.core.ast.expression.primary.GetModuleNode;
import org.pkl.core.ast.expression.primary.GetModuleOwnerNode;
import org.pkl.core.ast.expression.primary.GetOwnerNode;
+import org.pkl.core.ast.expression.primary.GetReceiverClassNode;
import org.pkl.core.ast.expression.primary.GetReceiverNode;
import org.pkl.core.ast.expression.primary.GetTypeAliasModuleNode;
import org.pkl.core.ast.expression.primary.OuterNode;
@@ -208,6 +209,7 @@ import org.pkl.core.stdlib.registry.ExternalMemberRegistry;
import org.pkl.core.stdlib.registry.MemberRegistryFactory;
import org.pkl.core.util.CollectionUtils;
import org.pkl.core.util.EconomicMaps;
+import org.pkl.core.util.ErrorMessages;
import org.pkl.core.util.IoUtils;
import org.pkl.core.util.Pair;
import org.pkl.parser.Span;
@@ -279,6 +281,7 @@ import org.pkl.parser.syntax.Type.NothingType;
import org.pkl.parser.syntax.Type.NullableType;
import org.pkl.parser.syntax.Type.ParenthesizedType;
import org.pkl.parser.syntax.Type.StringConstantType;
+import org.pkl.parser.syntax.Type.ThisType;
import org.pkl.parser.syntax.Type.UnionType;
import org.pkl.parser.syntax.Type.UnknownType;
import org.pkl.parser.syntax.TypeAlias;
@@ -370,7 +373,105 @@ public class AstBuilder extends AbstractAstBuilder {
@Override
public UnresolvedTypeNode visitModuleType(ModuleType type) {
- return new UnresolvedTypeNode.Module(createSourceSection(type));
+ var sourceSection = createSourceSection(type);
+ checkModuleType(type, sourceSection);
+ return new UnresolvedTypeNode.Module(sourceSection);
+ }
+
+ private void checkModuleType(ModuleType type, SourceSection sourceSection) {
+ // `class X extends module` is fine
+ if (type.parent() instanceof Class classNode && classNode.getSuperClass() == type) {
+ return;
+ }
+ var currentScope = symbolTable.getCurrentScope();
+ if (!currentScope.getConstLevel().isConst()) {
+ return;
+ }
+ String errorMessage = null;
+ // only classes/typealiases/annotations will apply "MODULE" const level
+ if (currentScope.getConstLevel() == ConstLevel.MODULE) {
+ for (var scope = currentScope; scope != null; scope = scope.getParent()) {
+ if (scope.isAnnotationScope()) {
+ errorMessage = ErrorMessages.create("invalidModuleTypeInAnnotation");
+ break;
+ } else if (scope.isClassScope()) {
+ errorMessage = ErrorMessages.create("invalidModuleTypeInClass");
+ break;
+ } else if (scope.isTypeAliasScope()) {
+ errorMessage = ErrorMessages.create("invalidModuleTypeInTypeAlias");
+ break;
+ }
+ }
+ }
+ // Only properties and methods will apply "ALL" const level
+ else {
+ for (var scope = currentScope; scope != null; scope = scope.getParent()) {
+ if (scope.isPropertyScope() || scope.isMethodScope()) {
+ var parentScope = scope.getParent();
+ assert parentScope != null;
+ // if the parent also has "ALL", we haven't found the originating const property/method
+ // yet.
+ if (parentScope.getConstLevel() == ConstLevel.ALL) {
+ continue;
+ }
+ var message =
+ scope.isPropertyScope() ? "invalidModuleTypeInProperty" : "invalidModuleTypeInMethod";
+ errorMessage = ErrorMessages.create(message, scope.getQualifiedName());
+ break;
+ }
+ }
+ }
+ assert errorMessage != null;
+ // TODO: when making this an error, update comment on moduleClass in ReferenceTypeNode.eval
+ VmContext.get(null)
+ .getLogger()
+ .warn(
+ errorMessage + " This will be an error in a future release.",
+ VmUtils.createStackFrame(sourceSection, null));
+ }
+
+ @Override
+ public UnresolvedTypeNode visitThisType(ThisType type) {
+ var sourceSection = createSourceSection(type);
+ // need to pass explicit class name for property and method arg/return type annotations.
+ // this is because type annotations on class properties/methods are initialized when the
+ // ClassNode
+ // is executed, and the frame's receiver is the enclosing module rather than the class.
+ // do not need: when in any object or at the module level (where `this` is the receiver's class)
+ org.pkl.core.runtime.Identifier className = null;
+ for (var scope = symbolTable.getCurrentScope(); scope != null; scope = scope.getParent()) {
+ if (scope.isObjectScope() || scope.isCustomThisScope()) {
+ break;
+ }
+ if (scope instanceof ClassScope foundClassScope) {
+ className = foundClassScope.getName();
+ break;
+ }
+ // it's still safe to break on ObjectScope because this is valid:
+ // typealias Foo = List(any((it) -> it == new Dynamic { it is this })) // this == Dynamic
+ if (scope.isTypeAliasScope()) {
+ throw exceptionBuilder()
+ .withSourceSection(sourceSection)
+ .evalError("invalidThisTypeInTypeAlias")
+ .build();
+ }
+ }
+
+ ExpressionNode getClassNode;
+ if (isBaseModule && className != null) {
+ getClassNode = new GetBaseModuleClassNode(className);
+ } else if (className == null) {
+ getClassNode = new GetReceiverClassNode(sourceSection);
+ } else if (className.isLocalProp()) {
+ getClassNode =
+ new ReadQualifiedLocalPropertyNode(
+ sourceSection, className, false, new GetModuleNode(sourceSection));
+ } else {
+ getClassNode =
+ ReadPropertyNodeGen.create(
+ sourceSection, className, false, new GetModuleNode(sourceSection));
+ }
+ return new UnresolvedTypeNode.This(sourceSection, getClassNode);
}
@Override
diff --git a/pkl-core/src/main/java/org/pkl/core/ast/builder/SymbolTable.java b/pkl-core/src/main/java/org/pkl/core/ast/builder/SymbolTable.java
index c502469d1..2f082ad5e 100644
--- a/pkl-core/src/main/java/org/pkl/core/ast/builder/SymbolTable.java
+++ b/pkl-core/src/main/java/org/pkl/core/ast/builder/SymbolTable.java
@@ -410,6 +410,18 @@ public final class SymbolTable {
return curr;
}
+ public final boolean isAnnotationScope() {
+ return this instanceof AnnotationScope;
+ }
+
+ public final boolean isPropertyScope() {
+ return this instanceof PropertyScope;
+ }
+
+ public final boolean isMethodScope() {
+ return this instanceof MethodScope;
+ }
+
public final boolean isLetScope() {
return this instanceof LetExpressionScope;
}
@@ -422,6 +434,10 @@ public final class SymbolTable {
return this instanceof ClassScope;
}
+ public final boolean isObjectScope() {
+ return this instanceof ObjectScope;
+ }
+
public final boolean isClassMemberScope() {
var effectiveScope = skipLambdaAndLetScopes();
var parent = effectiveScope.parent;
@@ -454,6 +470,10 @@ public final class SymbolTable {
return this instanceof ForGeneratorScope;
}
+ public final boolean isTypeAliasScope() {
+ return this instanceof TypeAliasScope;
+ }
+
public ConstLevel getConstLevel() {
return constLevel;
}
@@ -1010,7 +1030,6 @@ public final class SymbolTable {
@Override
public @Nullable VariableResolution doResolveProperty(String name, int levelsUp) {
-
var member = properties.get(name);
if (member == null) return null;
return new LexicalProperty(false, member.modifiers, levelsUp);
@@ -1018,7 +1037,6 @@ public final class SymbolTable {
@Override
public @Nullable MethodResolution doResolveMethod(String name, int levelsUp) {
-
var member = methods.get(name);
if (member == null) return null;
return new LexicalMethod(false, isClosed, false, member.modifiers, levelsUp);
diff --git a/pkl-core/src/main/java/org/pkl/core/ast/expression/primary/GetModuleNode.java b/pkl-core/src/main/java/org/pkl/core/ast/expression/primary/GetModuleNode.java
index dd40605d8..ea1abb8fc 100644
--- a/pkl-core/src/main/java/org/pkl/core/ast/expression/primary/GetModuleNode.java
+++ b/pkl-core/src/main/java/org/pkl/core/ast/expression/primary/GetModuleNode.java
@@ -25,6 +25,9 @@ import org.pkl.core.runtime.VmUtils;
@NodeInfo(shortName = "module")
public final class GetModuleNode extends ExpressionNode {
+ // NB: When used in an open module, this may resolve to instances of a regular class that extends
+ // the module.
+
public GetModuleNode(SourceSection sourceSection) {
super(sourceSection);
}
diff --git a/pkl-core/src/main/java/org/pkl/core/ast/expression/primary/GetReceiverClassNode.java b/pkl-core/src/main/java/org/pkl/core/ast/expression/primary/GetReceiverClassNode.java
new file mode 100644
index 000000000..b5ea3b592
--- /dev/null
+++ b/pkl-core/src/main/java/org/pkl/core/ast/expression/primary/GetReceiverClassNode.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.pkl.core.ast.expression.primary;
+
+import com.oracle.truffle.api.frame.VirtualFrame;
+import com.oracle.truffle.api.source.SourceSection;
+import org.pkl.core.ast.ExpressionNode;
+import org.pkl.core.runtime.VmUtils;
+
+public final class GetReceiverClassNode extends ExpressionNode {
+
+ public GetReceiverClassNode(SourceSection sourceSection) {
+ super(sourceSection);
+ }
+
+ @Override
+ public Object executeGeneric(VirtualFrame frame) {
+ return VmUtils.getClass(VmUtils.getReceiver(frame));
+ }
+}
diff --git a/pkl-core/src/main/java/org/pkl/core/ast/type/GetParentForTypeNode.java b/pkl-core/src/main/java/org/pkl/core/ast/type/GetParentForTypeNode.java
index 20021a4ab..59e9567a5 100644
--- a/pkl-core/src/main/java/org/pkl/core/ast/type/GetParentForTypeNode.java
+++ b/pkl-core/src/main/java/org/pkl/core/ast/type/GetParentForTypeNode.java
@@ -58,8 +58,8 @@ public final class GetParentForTypeNode extends ExpressionNode {
var defaultValue =
typeNode.createDefaultValue(frame, VmLanguage.get(this), sourceSection, qualifiedName);
- // can't cache default value for `module` type in a non-final module because it's a self-type
- // (the default value changes when inherited).
+ // can't cache default value for `module`/`this` types in a non-final modules/classes because
+ // they're self types (the default value changes when inherited).
if (typeNode.isFinalType() && defaultValue != null) {
unresolvedTypeNode = null;
this.defaultValue = defaultValue;
diff --git a/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java b/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java
index 188cddfd0..715f08f01 100644
--- a/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java
+++ b/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java
@@ -46,6 +46,8 @@ import org.pkl.core.TypeParameter;
import org.pkl.core.ast.*;
import org.pkl.core.ast.builder.SymbolTable.CustomThisScope;
import org.pkl.core.ast.expression.primary.GetModuleNode;
+import org.pkl.core.ast.expression.primary.GetReceiverClassNode;
+import org.pkl.core.ast.expression.primary.GetReceiverNode;
import org.pkl.core.ast.frame.WriteFrameSlotNode;
import org.pkl.core.ast.frame.WriteFrameSlotNodeGen;
import org.pkl.core.ast.internal.SyntheticNode;
@@ -54,6 +56,7 @@ import org.pkl.core.ast.member.ListingOrMappingTypeCastNode;
import org.pkl.core.ast.member.ObjectMember;
import org.pkl.core.ast.member.UntypedObjectMemberNode;
import org.pkl.core.runtime.*;
+import org.pkl.core.stdlib.VmObjectFactory;
import org.pkl.core.util.EconomicMaps;
import org.pkl.core.util.EconomicSets;
import org.pkl.core.util.LateInit;
@@ -144,7 +147,7 @@ public abstract class TypeNode extends PklNode {
true,
typeNode -> {
// assumption: don't need to worry about `NonFinalClassTypeNode`
- if (typeNode instanceof NonFinalModuleTypeNode) {
+ if (typeNode instanceof NonFinalSelfTypeNode) {
ret.set(false);
return false;
}
@@ -411,43 +414,61 @@ public abstract class TypeNode extends PklNode {
}
}
- /** The `module` type for a final module. */
- public static final class FinalModuleTypeNode extends ObjectSlotTypeNode {
- private final VmClass moduleClass;
+ /** The `module` or `this` type for a final module or class. */
+ public static final class FinalSelfTypeNode extends ObjectSlotTypeNode {
+ private final VmClass clazz;
+ private final PType pType;
+ private final VmObjectFactory mirrorFactory;
- public FinalModuleTypeNode(SourceSection sourceSection, VmClass moduleClass) {
+ private FinalSelfTypeNode(
+ SourceSection sourceSection,
+ VmClass clazz,
+ PType pType,
+ VmObjectFactory mirrorFactory) {
super(sourceSection);
- this.moduleClass = moduleClass;
+ this.clazz = clazz;
+ this.pType = pType;
+ this.mirrorFactory = mirrorFactory;
+ }
+
+ public static FinalSelfTypeNode moduleType(SourceSection sourceSection, VmClass clazz) {
+ return new FinalSelfTypeNode(
+ sourceSection, clazz, PType.MODULE, MirrorFactories.moduleTypeFactory);
+ }
+
+ public static FinalSelfTypeNode thisType(SourceSection sourceSection, VmClass clazz) {
+ return new FinalSelfTypeNode(
+ sourceSection, clazz, PType.THIS, MirrorFactories.thisTypeFactory);
}
@Override
protected Object executeLazily(VirtualFrame frame, Object value) {
- if (value instanceof VmTyped typed && typed.getVmClass() == moduleClass) return value;
+ if (VmUtils.getClass(value) == clazz) return value;
- throw typeMismatch(value, moduleClass);
+ throw typeMismatch(value, clazz);
}
@Override
public VmTyped getMirror() {
- return MirrorFactories.moduleTypeFactory.create(null);
+ return mirrorFactory.create(null);
}
@Override
public boolean doIsEquivalentTo(TypeNode other) {
- if (!(other instanceof FinalModuleTypeNode finalModuleTypeNode)) {
+ if (!(other instanceof FinalSelfTypeNode finalSelfTypeNode)) {
return false;
}
- return moduleClass.equals(finalModuleTypeNode.moduleClass);
+ return clazz.equals(finalSelfTypeNode.clazz);
}
@Override
protected PType doExport() {
- return PType.MODULE;
+ return pType;
}
@Override
public VmClass getVmClass() {
- return moduleClass;
+ return clazz;
}
@Override
@@ -461,54 +482,77 @@ public abstract class TypeNode extends PklNode {
VmLanguage language,
SourceSection headerSection,
String qualifiedName) {
- return TypeNode.createDefaultValue(moduleClass);
+ return TypeNode.createDefaultValue(clazz);
}
}
- /** The `module` type for an open module. */
- public static final class NonFinalModuleTypeNode extends ObjectSlotTypeNode {
- private final VmClass moduleClass; // only used by getVmClass()
- @Child private ExpressionNode getModuleNode;
+ /** The `module` or `this` type for an open module or class. */
+ public static final class NonFinalSelfTypeNode extends ObjectSlotTypeNode {
+ private final VmClass clazz; // only used by getVmClass()
+ @Child private ExpressionNode getTargetNode;
+ private final PType pType;
+ private final VmObjectFactory mirrorFactory;
- public NonFinalModuleTypeNode(SourceSection sourceSection, VmClass moduleClass) {
+ private NonFinalSelfTypeNode(
+ SourceSection sourceSection,
+ VmClass clazz,
+ ExpressionNode getTargetNode,
+ PType pType,
+ VmObjectFactory mirrorFactory) {
super(sourceSection);
- this.moduleClass = moduleClass;
- getModuleNode = new GetModuleNode(sourceSection);
+ this.clazz = clazz;
+ this.getTargetNode = getTargetNode;
+ this.pType = pType;
+ this.mirrorFactory = mirrorFactory;
+ }
+
+ public static NonFinalSelfTypeNode moduleType(SourceSection sourceSection, VmClass clazz) {
+ return new NonFinalSelfTypeNode(
+ sourceSection,
+ clazz,
+ new GetModuleNode(sourceSection),
+ PType.MODULE,
+ MirrorFactories.moduleTypeFactory);
+ }
+
+ public static NonFinalSelfTypeNode thisType(SourceSection sourceSection, VmClass clazz) {
+ return new NonFinalSelfTypeNode(
+ sourceSection, clazz, new GetReceiverNode(), PType.THIS, MirrorFactories.thisTypeFactory);
}
@Override
protected Object executeLazily(VirtualFrame frame, Object value) {
- var moduleClass = ((VmTyped) getModuleNode.executeGeneric(frame)).getVmClass();
+ var clazz = ((VmObjectLike) getTargetNode.executeGeneric(frame)).getVmClass();
if (value instanceof VmTyped typed) {
var valueClass = typed.getVmClass();
- if (moduleClass.isSuperclassOf(valueClass)) return value;
+ if (clazz.isSuperclassOf(valueClass)) return value;
}
- throw typeMismatch(value, moduleClass);
+ throw typeMismatch(value, clazz);
}
@Override
public VmTyped getMirror() {
- return MirrorFactories.moduleTypeFactory.create(null);
+ return mirrorFactory.create(null);
}
@Override
public boolean doIsEquivalentTo(TypeNode other) {
- if (!(other instanceof NonFinalModuleTypeNode nonFinalModuleTypeNode)) {
+ if (!(other instanceof NonFinalSelfTypeNode nonFinalSelfTypeNode)) {
return false;
}
- return moduleClass.equals(nonFinalModuleTypeNode.moduleClass);
+ return clazz.equals(nonFinalSelfTypeNode.clazz);
}
@Override
protected PType doExport() {
- return PType.MODULE;
+ return pType;
}
@Override
public VmClass getVmClass() {
- return moduleClass;
+ return clazz;
}
@Override
@@ -522,8 +566,8 @@ public abstract class TypeNode extends PklNode {
VmLanguage language,
SourceSection headerSection,
String qualifiedName) {
- var moduleClass = ((VmTyped) getModuleNode.executeGeneric(frame)).getVmClass();
- return TypeNode.createDefaultValue(moduleClass);
+ var clazz = ((VmObjectLike) getTargetNode.executeGeneric(frame)).getVmClass();
+ return TypeNode.createDefaultValue(clazz);
}
}
@@ -1954,7 +1998,7 @@ public abstract class TypeNode extends PklNode {
protected final PType doExport() {
var parameterTypes =
Arrays.stream(parameterTypeNodes).map(TypeNode::export).collect(Collectors.toList());
- return new PType.Function(parameterTypes, TypeNode.export(returnTypeNode));
+ return new PType.Function(parameterTypes, returnTypeNode.doExport());
}
@Override
@@ -2005,8 +2049,7 @@ public abstract class TypeNode extends PklNode {
@Override
protected final PType doExport() {
- return new PType.Class(
- BaseModule.getFunctionClass().export(), TypeNode.export(typeArgumentNode));
+ return new PType.Class(BaseModule.getFunctionClass().export(), typeArgumentNode.doExport());
}
@Specialization
@@ -2119,6 +2162,7 @@ public abstract class TypeNode extends PklNode {
public abstract static class ReferenceTypeNode extends ValidatingObjectSlotTypeNode {
@Child private TypeNode domainTypeNode;
@Child private TypeNode referentTypeNode;
+ @Child private ExpressionNode getReceiverClassNode;
@Child private ExpressionNode getModuleNode;
public ReferenceTypeNode(
@@ -2126,6 +2170,7 @@ public abstract class TypeNode extends PklNode {
super(sourceSection);
this.domainTypeNode = domainTypeNode;
this.referentTypeNode = referentTypeNode;
+ this.getReceiverClassNode = new GetReceiverClassNode(sourceSection);
this.getModuleNode = new GetModuleNode(sourceSection);
validate();
}
@@ -2168,25 +2213,30 @@ public abstract class TypeNode extends PklNode {
} catch (VmTypeMismatchException e) {
CompilerDirectives.transferToInterpreter();
throw new VmTypeMismatchException.Reference(
- sourceSection,
- value,
- TypeNode.export(domainTypeNode),
- TypeNode.export(referentTypeNode));
+ sourceSection, value, domainTypeNode.doExport(), referentTypeNode.doExport());
}
- var module = (VmTyped) getModuleNode.executeGeneric(frame);
- return doEval(value, module);
+ // NB: this is correct because the `this` type is not allowed in typealias bodies.
+ // So `this` can only correspond to the receiver where the type check/annotation is written.
+ var thisClass = ((VmClass) getReceiverClassNode.executeGeneric(frame));
+
+ // NB: This will be wrong for deprecated usage of the `module` type in typealias bodies.
+ // It will always resolve to the module where the type check/annotation is written
+ // not the type itself. This is no _more_ broken than it was before.
+ var moduleClass = VmUtils.getClass(getModuleNode.executeGeneric(frame));
+
+ return doEval(value, thisClass, moduleClass);
}
@TruffleBoundary
- private Object doEval(VmReference value, VmTyped module) {
- var referentType = TypeNode.export(referentTypeNode);
- if (value.referentTypeIsSubtypeOf(referentType, module.getVmClass().export())) {
+ private Object doEval(VmReference value, VmClass thisClass, VmClass moduleClass) {
+ var referentType = referentTypeNode.doExport();
+ if (value.referentTypeIsSubtypeOf(referentType, thisClass.export(), moduleClass.export())) {
return value;
}
throw new VmTypeMismatchException.Reference(
- sourceSection, value, TypeNode.export(domainTypeNode), referentType);
+ sourceSection, value, domainTypeNode.doExport(), referentType);
}
@Fallback
@@ -2739,6 +2789,7 @@ public abstract class TypeNode extends PklNode {
return aliasedTypeNode.executeLazily(frame, value);
}
+ /** See docstring on {@link TypeAliasTypeNode#executeLazily}. */
@Override
public Object executeEagerly(VirtualFrame frame, Object value) {
return aliasedTypeNode.executeEagerly(frame, value);
@@ -3334,6 +3385,7 @@ public abstract class TypeNode extends PklNode {
if (clazz.isInstantiable()) {
if (clazz.isListingClass()) return VmListing.empty();
if (clazz.isMappingClass()) return VmMapping.empty();
+ if (clazz.isDynamicClass()) return VmDynamic.empty();
return clazz.getPrototype();
}
diff --git a/pkl-core/src/main/java/org/pkl/core/ast/type/UnresolvedTypeNode.java b/pkl-core/src/main/java/org/pkl/core/ast/type/UnresolvedTypeNode.java
index 16cbaf407..21255c0b3 100644
--- a/pkl-core/src/main/java/org/pkl/core/ast/type/UnresolvedTypeNode.java
+++ b/pkl-core/src/main/java/org/pkl/core/ast/type/UnresolvedTypeNode.java
@@ -103,8 +103,28 @@ public abstract class UnresolvedTypeNode extends PklNode {
var module = (VmTyped) getModuleNode.executeGeneric(frame);
var moduleClass = module.getVmClass();
return moduleClass.isClosed()
- ? new FinalModuleTypeNode(sourceSection, moduleClass)
- : new NonFinalModuleTypeNode(sourceSection, moduleClass);
+ ? FinalSelfTypeNode.moduleType(sourceSection, moduleClass)
+ : NonFinalSelfTypeNode.moduleType(sourceSection, moduleClass);
+ }
+ }
+
+ /** The `this` type. */
+ public static final class This extends UnresolvedTypeNode {
+ @Child private ExpressionNode getClassNode;
+
+ public This(SourceSection sourceSection, ExpressionNode getClassNode) {
+ super(sourceSection);
+ this.getClassNode = getClassNode;
+ }
+
+ @Override
+ public TypeNode execute(VirtualFrame frame) {
+ CompilerDirectives.transferToInterpreter();
+
+ var clazz = (VmClass) getClassNode.executeGeneric(frame);
+ return clazz.isClosed()
+ ? FinalSelfTypeNode.thisType(sourceSection, clazz)
+ : NonFinalSelfTypeNode.thisType(sourceSection, clazz);
}
}
diff --git a/pkl-core/src/main/java/org/pkl/core/runtime/MirrorFactories.java b/pkl-core/src/main/java/org/pkl/core/runtime/MirrorFactories.java
index e5083fb32..892d23acd 100644
--- a/pkl-core/src/main/java/org/pkl/core/runtime/MirrorFactories.java
+++ b/pkl-core/src/main/java/org/pkl/core/runtime/MirrorFactories.java
@@ -97,6 +97,9 @@ public final class MirrorFactories {
public static final VmObjectFactory moduleTypeFactory =
new VmObjectFactory<>(ReflectModule::getModuleTypeClass);
+ public static final VmObjectFactory thisTypeFactory =
+ new VmObjectFactory<>(ReflectModule::getThisTypeClass);
+
public static final VmObjectFactory unknownTypeFactory =
new VmObjectFactory<>(ReflectModule::getUnknownTypeClass);
diff --git a/pkl-core/src/main/java/org/pkl/core/runtime/ReflectModule.java b/pkl-core/src/main/java/org/pkl/core/runtime/ReflectModule.java
index dc63aa845..d95d816f3 100644
--- a/pkl-core/src/main/java/org/pkl/core/runtime/ReflectModule.java
+++ b/pkl-core/src/main/java/org/pkl/core/runtime/ReflectModule.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
+ * Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -84,6 +84,10 @@ public final class ReflectModule extends StdLibModule {
return ModuleTypeClass.instance;
}
+ public static VmClass getThisTypeClass() {
+ return ThisTypeClass.instance;
+ }
+
public static VmClass getFunctionTypeClass() {
return FunctionTypeClass.instance;
}
@@ -152,6 +156,10 @@ public final class ReflectModule extends StdLibModule {
static final VmClass instance = loadClass("ModuleType");
}
+ private static final class ThisTypeClass {
+ static final VmClass instance = loadClass("ThisType");
+ }
+
private static final class FunctionTypeClass {
static final VmClass instance = loadClass("FunctionType");
}
diff --git a/pkl-core/src/main/java/org/pkl/core/runtime/VmReference.java b/pkl-core/src/main/java/org/pkl/core/runtime/VmReference.java
index 09e56ea5b..a7de84fbd 100644
--- a/pkl-core/src/main/java/org/pkl/core/runtime/VmReference.java
+++ b/pkl-core/src/main/java/org/pkl/core/runtime/VmReference.java
@@ -57,11 +57,7 @@ public final class VmReference extends VmValue {
@TruffleBoundary
public VmReference(VmTyped domain, VmClass clazz, Object data) {
- this(
- domain,
- data,
- RrbTree.empty(),
- normalizeTypes(new PType.Class(clazz.export()), clazz.getModule().getVmClass().export()));
+ this(domain, data, RrbTree.empty(), normalizeTypes(new PType.Class(clazz.export())));
}
public VmReference(VmTyped domain, Object data, ImRrbt path, PType referentType) {
@@ -92,14 +88,18 @@ public final class VmReference extends VmValue {
// * transforming T? into T|Null
// * dereferencing aliases (except for well-known stdlib alias types)
// * flattening unions
- // * when moduleClass is supplied, replace PType.MODULE with appropriate PType.Class
// * drop PType.Function and PType.TypeVariable
- private static PType normalizeTypes(PType type, PClass moduleClass) {
+ private static PType normalizeTypes(
+ PType type, @Nullable PType thisClass, @Nullable PType moduleClass) {
var types = new HashSet();
- normalizeTypes(type, moduleClass, types);
+ normalizeTypes(type, types, thisClass, moduleClass);
return minimizeTypes(types);
}
+ private static PType normalizeTypes(PType type) {
+ return normalizeTypes(type, null, null);
+ }
+
private static PType minimizeTypes(Set types) {
if (types.size() == 1) return types.iterator().next();
// optimization: unknown allows all references, erase all candidates to only unknown
@@ -112,7 +112,8 @@ public final class VmReference extends VmValue {
return new PType.Union(typesList);
}
- private static void normalizeTypes(PType type, PClass moduleClass, Set result) {
+ private static void normalizeTypes(
+ PType type, Set result, @Nullable PType thisClass, @Nullable PType moduleClass) {
if (type == PType.UNKNOWN || type == PType.NOTHING || type instanceof PType.StringLiteral) {
result.add(type);
} else if (type instanceof PType.Class clazz) {
@@ -128,35 +129,51 @@ public final class VmReference extends VmValue {
} else {
var typeArgs = new ArrayList(clazz.getTypeArguments().size());
for (var arg : clazz.getTypeArguments()) {
- typeArgs.add(normalizeTypes(arg, moduleClass));
+ typeArgs.add(normalizeTypes(arg, thisClass, moduleClass));
}
result.add(new PType.Class(clazz.getPClass(), typeArgs));
}
}
// normalize `T?` to `T | Null`
else if (type instanceof PType.Nullable nullable) {
- normalizeTypes(nullable.getBaseType(), moduleClass, result);
+ normalizeTypes(nullable.getBaseType(), result, thisClass, moduleClass);
result.add(new PType.Class(BaseModule.getNullClass().export()));
// erase `T(someConstraint)` to `T`
} else if (type instanceof PType.Constrained constrained) {
- normalizeTypes(constrained.getBaseType(), moduleClass, result);
+ normalizeTypes(constrained.getBaseType(), result, thisClass, moduleClass);
} else if (type instanceof PType.Alias alias) {
if (isPreservedTypeAlias(alias.getTypeAlias())) {
result.add(alias);
} else {
- normalizeTypes(alias.getAliasedType(), alias.getTypeAlias().getModuleClass(), result);
+ normalizeTypes(alias.getAliasedType(), result, thisClass, moduleClass);
}
} else if (type instanceof PType.Union union) {
for (var t : union.getElementTypes()) {
- normalizeTypes(t, moduleClass, result);
+ normalizeTypes(t, result, thisClass, moduleClass);
}
+ } else if (type == PType.THIS) {
+ assert thisClass != null;
+ // there are 4 entrypoints here:
+ // 1. init via the Reference constructor can only normalize an unparameterized PType.Class
+ // 2. typecheck via ReferenceTypeNode erases self types to their actual PType.Class
+ // 3. subscript access can only be achieved by first performing property access, at which time
+ // self types are erased
+ // 4. property access uses the enclosing receiver's class to substitute for these self types
+ // only property access and typecheck can produce THIS or MODULE.
+ // getCandidatePropertyType and referentTypeIsSubtypeOf always pass non-null `thisClass`.
+ result.add(thisClass);
} else if (type == PType.MODULE) {
- result.add(new PType.Class(moduleClass));
+ // this can be incorrect for usage of the module type in a class's property type annotation,
+ // which is deprecated!!
+ assert moduleClass != null;
+ // see PType.THIS case above
+ result.add(moduleClass);
} else {
// remaining types: PType.Function, PType.TypeVariable. no normalizing needed; TypeVariable
// gets replaced upon instantiation, and Function can bubble up to users as a reference error
// if accessed.
result.add(type);
+ // PType.MODULE and PType.THIS can never be encountered here; caller must deref self types
}
}
@@ -243,7 +260,8 @@ public final class VmReference extends VmValue {
throw new VmReferenceAccessError(type, VmReferenceAccessErrorType.EXTERNAL_MEMBER);
}
- normalizeTypes(prop.getType(), clazz.getPClass().getModuleClass(), result);
+ normalizeTypes(
+ prop.getType(), result, clazz, new PType.Class(clazz.getPClass().getModuleClass()));
}
private static PClassInfo> getClassInfo(Object value) {
@@ -273,19 +291,19 @@ public final class VmReference extends VmValue {
if (!(key instanceof Long)) {
throw new VmReferenceAccessError(type, VmReferenceAccessErrorType.CANNOT_FIND_MEMBER);
}
- normalizeTypes(clazz.getTypeArguments().get(0), clazz.getPClass().getModuleClass(), result);
+ normalizeTypes(clazz.getTypeArguments().get(0), result, null, null);
return;
}
if (clazz.getPClass().getInfo() == PClassInfo.Mapping
|| clazz.getPClass().getInfo() == PClassInfo.Map) {
var typeArgs = clazz.getTypeArguments();
- var keyTypes = normalizeTypes(typeArgs.get(0), clazz.getPClass().getModuleClass());
+ var keyTypes = normalizeTypes(typeArgs.get(0));
for (var kt : iterateTypes(keyTypes)) {
if (kt == PType.UNKNOWN
|| (kt instanceof PType.Class klazz && klazz.getPClass().getInfo() == getClassInfo(key))
|| (kt instanceof PType.StringLiteral stringLiteral
&& stringLiteral.getLiteral().equals(key))) {
- normalizeTypes(typeArgs.get(1), clazz.getPClass().getModuleClass(), result);
+ normalizeTypes(typeArgs.get(1), result, null, null);
return;
}
}
@@ -303,13 +321,14 @@ public final class VmReference extends VmValue {
/**
* Tells if this reference's referent type is a subtype of {@code type}. Does not check domain.
*/
- public boolean referentTypeIsSubtypeOf(PType type, PClass moduleClass) {
+ @TruffleBoundary
+ public boolean referentTypeIsSubtypeOf(PType type, PClass thisClass, PClass moduleClass) {
// fast path: if referent is unknown it can match any type check
if (referentType == PType.UNKNOWN) {
return true;
}
- var checkType = normalizeTypes(type, moduleClass);
+ var checkType = normalizeTypes(type, new PType.Class(thisClass), new PType.Class(moduleClass));
// fast path: short circuit if any referent is accepted
if (checkType == PType.UNKNOWN || isClass(checkType, BaseModule.getAnyClass().export())) {
return true;
diff --git a/pkl-core/src/main/java/org/pkl/core/stdlib/reflect/ReflectNodes.java b/pkl-core/src/main/java/org/pkl/core/stdlib/reflect/ReflectNodes.java
index fca719073..ac98fe8cb 100644
--- a/pkl-core/src/main/java/org/pkl/core/stdlib/reflect/ReflectNodes.java
+++ b/pkl-core/src/main/java/org/pkl/core/stdlib/reflect/ReflectNodes.java
@@ -137,6 +137,14 @@ public final class ReflectNodes {
}
}
+ public abstract static class thisType extends ExternalPropertyNode {
+ @Specialization
+ @TruffleBoundary
+ protected VmTyped eval(VmTyped self) {
+ return MirrorFactories.thisTypeFactory.create(null);
+ }
+ }
+
public abstract static class unknownType extends ExternalPropertyNode {
@Specialization
@TruffleBoundary
diff --git a/pkl-core/src/main/resources/org/pkl/core/errorMessages.properties b/pkl-core/src/main/resources/org/pkl/core/errorMessages.properties
index fea731288..061387f80 100644
--- a/pkl-core/src/main/resources/org/pkl/core/errorMessages.properties
+++ b/pkl-core/src/main/resources/org/pkl/core/errorMessages.properties
@@ -1218,3 +1218,21 @@ Class `{0}` should either be declared `abstract`, or should implement method `{1
noImplementationForAbstractMethods=\
Class `{0}` should either be declared `abstract`, or should implement the following methods:\n\
{1}
+
+invalidModuleTypeInProperty=\
+Cannot reference `module` type from const property `{0}`.
+
+invalidModuleTypeInMethod=\
+Cannot reference `module` type from const method `{0}`.
+
+invalidModuleTypeInClass=\
+Cannot reference `module` type within a class body.
+
+invalidModuleTypeInAnnotation=\
+Cannot reference `module` type within an annotation body.
+
+invalidModuleTypeInTypeAlias=\
+Cannot reference `module` type within a type alias body.
+
+invalidThisTypeInTypeAlias=\
+Cannot reference `this` type within a type alias body.
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input-helper/api/reflect/BaseModule.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input-helper/api/reflect/BaseModule.pkl
index c40eb271b..ef5589ee2 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input-helper/api/reflect/BaseModule.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input-helper/api/reflect/BaseModule.pkl
@@ -48,6 +48,8 @@ nullable: Person?
stringLiteral: "yes"
constrained: String(length.isBetween(3, 10))
aliased: MyMap
+mod: module
+self: this
hidden hiddenProp: String
const constProp: String = "the const prop"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input-helper/types/aliasHolder.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input-helper/types/aliasHolder.pkl
new file mode 100644
index 000000000..f9d46ff24
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input-helper/types/aliasHolder.pkl
@@ -0,0 +1 @@
+typealias MyList = List
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input-helper/types/moduleTypeProperty.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input-helper/types/moduleTypeProperty.pkl
new file mode 100644
index 000000000..3a0079fbb
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input-helper/types/moduleTypeProperty.pkl
@@ -0,0 +1,6 @@
+open module moduleTypeProperty
+
+x = 1
+y = mod.x
+modName = module.getClass().toString()
+hidden mod: module
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/api/reference.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/api/reference.pkl
index dddfb0712..2539e55d0 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/api/reference.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/api/reference.pkl
@@ -1,8 +1,9 @@
import "pkl:math"
import "pkl:ref"
+import "pkl:test"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String =
+ function renderReference(reference: ref.Reference): String =
let (data = reference.getData())
let (root = if (data is Resource) data.name else data.toString())
let (
@@ -19,13 +20,12 @@ typealias Ref = ref.Reference
abstract class Resource {
name: String
- hidden fixed $: Ref
+ hidden fixed $: Ref = ref.Reference(d, getClass(), this)
}
class A extends Resource {
id: String
hidden outputs: AProperties
- hidden fixed $: Ref = ref.Reference(d, A, this)
}
/// Test doc comment
@@ -42,7 +42,6 @@ class AProperties {
class B extends Resource {
id: String
hidden outputs: BProperties
- hidden fixed $: Ref = ref.Reference(d, B, this)
}
class BProperties {
@@ -128,6 +127,13 @@ class TypeHolder {
prop: Listing
}
+class BadResource extends Resource {
+ // return a reference with referent that isn't `this`
+ fixed $ = ref.Reference(d, A, this)
+}
+
+badThisRef = test.catch(() -> new BadResource { name = "bad" }.$.toString())
+
output {
renderer {
converters {
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/api/reflect1.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/api/reflect1.pkl
index 4ff5e4be7..ac7e12543 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/api/reflect1.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/api/reflect1.pkl
@@ -48,6 +48,8 @@ facts {
modClassProps["aliased"].type ==
reflect.DeclaredType(reflect.TypeAlias(BaseModule.MyMap))
.withTypeArgument(reflect.DeclaredType(reflect.Class(BaseModule.Person)))
+ modClassProps["mod"].type == reflect.moduleType
+ modClassProps["self"].type == reflect.thisType
}
["Reflecting a class"] {
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/basic/reference.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/basic/reference.pkl
index 336f0165e..650afc846 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/basic/reference.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/basic/reference.pkl
@@ -3,7 +3,7 @@ amends "../snippetTest.pkl"
import "pkl:ref"
local class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = reference.getData().toString()
+ function renderReference(reference: ref.Reference): String = reference.getData().toString()
}
local const d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference1.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference1.pkl
index 0465c5bfe..b61c0ac5f 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference1.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference1.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
typealias Ref = ref.Reference
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference10.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference10.pkl
index bb145f685..485f5b440 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference10.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference10.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
typealias Ref = ref.Reference
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference11.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference11.pkl
index 8e1daebc4..b6f276202 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference11.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference11.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
typealias Ref = ref.Reference
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference12.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference12.pkl
index 576d7d287..ce04958f7 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference12.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference12.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
typealias RefAlias1 = ref.Reference
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference13.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference13.pkl
index 489f46661..87cb0615a 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference13.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference13.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference14.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference14.pkl
index 47bbe6628..b19940d3b 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference14.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference14.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference15.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference15.pkl
index 4f82ef2af..2c3b7ab2a 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference15.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference15.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference16.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference16.pkl
index 1519c25db..3f80f1112 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference16.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference16.pkl
@@ -3,7 +3,7 @@ import "pkl:ref"
import ".../input-helper/errors/ReferencedModule.pkl"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference17.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference17.pkl
index 81d697e2a..af693df83 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference17.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference17.pkl
@@ -3,7 +3,7 @@ import "pkl:ref"
import ".../input-helper/errors/ReferencedModuleWithOutputOverride.pkl"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference18.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference18.pkl
index 7a916c524..a8a418f8c 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference18.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference18.pkl
@@ -5,7 +5,7 @@ import ".../input-helper/errors/ReferencedModuleWithOutputOverride.pkl"
class ModuleSubclass extends ReferencedModuleWithOutputOverride
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference19.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference19.pkl
index 2e4ff0a74..042272748 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference19.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference19.pkl
@@ -5,7 +5,7 @@ class A {
}
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference2.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference2.pkl
index a942c2034..a5519badf 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference2.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference2.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
typealias Ref = ref.Reference
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference20.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference20.pkl
index 417c9f3a0..d0311d6d0 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference20.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference20.pkl
@@ -5,11 +5,11 @@ class A {
}
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
local test = ref.Reference(d, A, "").foo
testInterpolation = "test:\(test)"
-// this tests that the interpolation appears in the output when referenceToString throws
+// this tests that the interpolation appears in the output when renderReference throws
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference28.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference28.pkl
new file mode 100644
index 000000000..bb700ede3
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference28.pkl
@@ -0,0 +1,45 @@
+// interactions between references and self types
+
+import "pkl:ref"
+
+class D extends ref.Domain {
+ function renderReference(r: ref.Reference): String =
+ r.getPath().map((it) -> it.property ?? it.key.toString()).join(".")
+}
+
+// this type in a final class
+class Node {
+ parent: this?
+ children: List
+}
+
+// this type in an open class
+open class Node2 {
+ parent: this?
+ children: List
+}
+
+typealias R = ref.Reference
+typealias R2 = ref.Reference
+
+res0: R = ref.Reference(new D {}, Node, null)
+res1: R = res0.parent
+res2: R = res0.parent.parent
+res3: R = res0.children[0]
+res4: R = res0.children[0].parent
+res5: R = res0.children[0].children[0]
+
+res0a: R2 = ref.Reference(new D {}, Node2, null)
+res1a: R2 = res0a.parent
+res2a: R2 = res0a.parent.parent
+res3a: R2 = res0a.children[0]
+res4a: R2 = res0a.children[0].parent
+res5a: R2 = res0a.children[0].children[0]
+
+output {
+ renderer {
+ converters {
+ [ref.Reference] = (it) -> it.toString()
+ }
+ }
+}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference29.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference29.pkl
new file mode 100644
index 000000000..ebcdf8bba
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference29.pkl
@@ -0,0 +1,32 @@
+open module reference29
+
+// interactions between references and self types
+// module type in an open module
+
+import "pkl:ref"
+import "reference29.pkl"
+
+class D extends ref.Domain {
+ function renderReference(r: ref.Reference): String =
+ r.getPath().map((it) -> it.property ?? it.key.toString()).join(".")
+}
+
+hidden parent: module?
+hidden children: List
+
+typealias R = ref.Reference
+
+res0 = ref.Reference(new D {}, getClass(), null)
+res1: R = res0.parent
+res2: R = res0.parent.parent
+res3: R = res0.children[0]
+res4: R = res0.children[0].parent
+res5: R = res0.children[0].children[0]
+
+output {
+ renderer {
+ converters {
+ [ref.Reference] = (it) -> it.toString()
+ }
+ }
+}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference3.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference3.pkl
index 182046e4c..3037c05b0 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference3.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference3.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
typealias Ref = ref.Reference
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference30.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference30.pkl
new file mode 100644
index 000000000..662fec0da
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference30.pkl
@@ -0,0 +1,30 @@
+// interactions between references and self types
+// module type in a final module
+
+import "pkl:ref"
+import "reference30.pkl"
+
+class D extends ref.Domain {
+ function renderReference(r: ref.Reference): String =
+ r.getPath().map((it) -> it.property ?? it.key.toString()).join(".")
+}
+
+hidden parent: module?
+hidden children: List
+
+typealias R = ref.Reference
+
+res0 = ref.Reference(new D {}, getClass(), null)
+res1: R = res0.parent
+res2: R = res0.parent.parent
+res3: R = res0.children[0]
+res4: R = res0.children[0].parent
+res5: R = res0.children[0].children[0]
+
+output {
+ renderer {
+ converters {
+ [ref.Reference] = (it) -> it.toString()
+ }
+ }
+}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference4.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference4.pkl
index a48fa5dab..b6eefabb6 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference4.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference4.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
typealias Ref = ref.Reference
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference5.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference5.pkl
index 1a7365af4..a570ea49e 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference5.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference5.pkl
@@ -1,13 +1,13 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
typealias Ref = ref.Reference
class D2 extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d2: D2 = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference6.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference6.pkl
index 7ab3faed2..088305c3e 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference6.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference6.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
typealias Ref = ref.Reference
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference7.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference7.pkl
index 649ddd426..6bd109fec 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference7.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference7.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
local d: D = new {}
typealias Ref = ref.Reference
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference8.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference8.pkl
index 0dff11cbe..fcf66b49d 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference8.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference8.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
typealias Ref = ref.Reference
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference9.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference9.pkl
index 2fa7bf21f..66faa0409 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference9.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/errors/reference9.pkl
@@ -1,7 +1,7 @@
import "pkl:ref"
class D extends ref.Domain {
- function renderReference(reference: ref.Reference): String = throw("not supported")
+ function renderReference(reference: ref.Reference): String = throw("not supported")
}
typealias Ref = ref.Reference
local d: D = new {}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType1.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType1.pkl
index d916201ee..f5259a4c7 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType1.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType1.pkl
@@ -42,15 +42,15 @@ output {
// force eval but don't render to prevent recursion
value =
let (r1 = res1)
- let (r2 = res2)
- let (r3 = res3)
- let (r4 = res4)
- let (r5 = res5)
- let (r6 = res6)
- let (r6a = res6a)
- let (r7 = res7)
- let (r8 = res8)
- let (r9 = res9)
- let (r10 = res10)
- new Dynamic { result = "ok" }
+ let (r2 = res2)
+ let (r3 = res3)
+ let (r4 = res4)
+ let (r5 = res5)
+ let (r6 = res6)
+ let (r6a = res6a)
+ let (r7 = res7)
+ let (r8 = res8)
+ let (r9 = res9)
+ let (r10 = res10)
+ new Dynamic { result = "ok" }
}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType2.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType2.pkl
index 9b843c3ff..8127beed6 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType2.pkl
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType2.pkl
@@ -44,15 +44,15 @@ output {
// force eval but don't render to prevent recursion
value =
let (r1 = res1)
- let (r2 = res2)
- let (r3 = res3)
- let (r4 = res4)
- let (r5 = res5)
- let (r6 = res6)
- let (r6a = res6a)
- let (r7 = res7)
- let (r8 = res8)
- let (r9 = res9)
- let (r10 = res10)
- new Dynamic { result = "ok" }
+ let (r2 = res2)
+ let (r3 = res3)
+ let (r4 = res4)
+ let (r5 = res5)
+ let (r6 = res6)
+ let (r6a = res6a)
+ let (r7 = res7)
+ let (r8 = res8)
+ let (r9 = res9)
+ let (r10 = res10)
+ new Dynamic { result = "ok" }
}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType4.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType4.pkl
new file mode 100644
index 000000000..224b852d3
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType4.pkl
@@ -0,0 +1,21 @@
+typealias Foo = module
+
+@Baz { valid = true is module }
+class Bar {
+ baz: module
+}
+
+class Baz extends Annotation {
+ valid: Boolean
+}
+
+const qux = true is module
+const function quux() = true is module
+
+const corge = new {
+ grault {
+ garply = true is module
+ }
+}
+
+hidden const waldo = (x: module) -> true
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType5.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType5.pkl
new file mode 100644
index 000000000..07073f7a2
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType5.pkl
@@ -0,0 +1,7 @@
+open module currentModuleType5
+
+import ".../input-helper/types/aliasHolder.pkl"
+
+local foo: aliasHolder.MyList = List(this)
+x = 1
+y = foo.first.x
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType6.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType6.pkl
new file mode 100644
index 000000000..aeb3e119e
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/currentModuleType6.pkl
@@ -0,0 +1,21 @@
+import "pkl:test"
+
+import ".../input-helper/types/moduleTypeProperty.pkl"
+
+class ModuleSubclass extends moduleTypeProperty {
+ x = 2
+ hidden mod2: module
+ mod2x = mod2.x
+}
+
+x = -1
+
+res1 = new moduleTypeProperty {}
+res2 = new moduleTypeProperty {
+ mod = new ModuleSubclass {}
+}
+res3 = new ModuleSubclass {}
+res4 =
+ test.catch(() -> new ModuleSubclass {
+ mod = new moduleTypeProperty {}
+ }.output.text)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType1.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType1.pkl
new file mode 100644
index 000000000..fb1eb2888
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType1.pkl
@@ -0,0 +1,150 @@
+open module thisType1
+
+import "pkl:test"
+import "pkl:reflect"
+
+hidden x: Int = 1
+
+hidden res1: this = module
+
+res1a = res1.res2.x
+res1b = res1.res3.x
+res1c = res1.res5[1].x
+res1d = res1.res6a.x
+res1e = res1.res6b.x
+
+hidden res2: this = this
+hidden res3: this = (this) { x = super.x + 1 }
+res4: this? = null
+hidden res5: List = List(this, (this) { x = super.x + 2 })
+hidden res6: List = fun(this)
+hidden res6a: this = res6[0]
+hidden res6b: this = fun(new Good { x = 3 })[0]
+
+function fun(m: this): List =
+ let (_x = x)
+ List((m) { x = super.x + _x })
+
+typealias Foo = T
+
+function fun2(m: Foo): List =
+ let (_x = x)
+ List((m) { x = super.x + _x + 1 })
+
+class Bad {
+ res7: this = "abc"
+ res8: this = new Person {}
+ res9: this? = new Person {}
+ res10: List = List(new Person {})
+}
+
+class Person
+
+res7 = test.catch(() -> new Bad {}.res7)
+res8 = test.catch(() -> new Bad {}.res8)
+res9 = test.catch(() -> new Bad {}.res9)
+res10 = test.catch(() -> new Bad {}.res10)
+
+class Good extends module {
+ x = 2
+}
+
+local res11 = new Good {}
+
+res11a = res11.res2.x
+res11b = res11.res3.x
+res11c = res11.res5[1].x
+res11d = res11.res6a.x
+
+res12 = test.catch(() -> res11.fun(module)[0].x)
+
+// this type not affected by custom this scope:
+hidden res13: List(this is List) = List(module)
+res13a = res13[0].x
+
+// test generic typealias through inheritance from module
+res14 = fun2(this).map((it) -> it.x)
+res14a = test.catch(() -> res11.fun2(this))
+res14b = res11.fun2(res11)[0].x
+
+// test generic typealias without inheritance from module
+open class A {
+ x: Int = 1
+ function fun2(m: Foo): List =
+ let (_x = x)
+ List((m) { x = super.x + _x + 1 })
+}
+class B extends A
+
+local a = new A {}
+local b = new B {}
+res15 = a.fun2(a)
+res15a = test.catch(() -> b.fun2(a))
+res15b = b.fun2(b)
+
+// test function type, function literal param, object body param
+local c: (this) -> Dynamic = (xx: this) -> new Dynamic { x = xx.x * 2 }
+local d = (c) { xx: this ->
+ x = super.x + xx.x * 3
+}
+res16 = d.apply(this).x
+res16a = test.catch(() -> d.apply(new Dynamic { x = 1 }).x)
+
+// let expr binding type
+res17 =
+ let (xx: this = new module { x = 3 })
+ xx.x
+
+// for/when generator vars skip a level
+res18: Listing = new {
+ for (xx: this in List(module)) {
+ xx.x
+ }
+}
+
+// object property/method param/method return
+res19 = new Dynamic {
+ local foo: this = new Dynamic { x = 1 }
+ local function bar(a: this): this = new { x = foo.x + a.x }
+ baz = bar(new Dynamic { x = 2 })
+}
+
+// type cast, explicit new expr
+hidden res20 = new this { x = 6 } as this
+res20a = res20.x
+
+// constrained
+hidden res21: this(this.x > 5) = res20
+res21a = res21.x
+
+// lazy type check and default value
+hidden res22: Listing = new {
+ new { x = 1 }
+ new Good {}
+ new { x = 3 }
+ new Good { x = 4 }
+}
+
+res22a = module.res22.toList().map((it) -> "\(it.getClass()): \(it.x)").toListing()
+res22b = new Good {}.res22.toList().map((it) -> "\(it.getClass()): \(it.x)").toListing()
+
+// annotation type
+
+open class ThisAnnotation extends Annotation {
+ @this { y = 1 }
+ y: Int
+}
+
+open class ThatAnnotation extends ThisAnnotation
+
+@ThisAnnotation { y = 2 }
+hidden annThis: Int = 1
+res23 = reflect.Class(getClass()).properties["annThis"].annotations.single
+res23a = res23.getClass().toString()
+res23b = reflect.Class(res23.getClass()).allProperties["y"].annotations.single.getClass().toString()
+
+@ThatAnnotation { y = 2 }
+hidden annThat: Int = 1
+res24 = reflect.Class(getClass()).properties["annThat"].annotations.single
+res24a = res24.getClass().toString()
+res24b = reflect.Class(res24.getClass()).allProperties["y"].annotations.single.getClass().toString()
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType2.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType2.pkl
new file mode 100644
index 000000000..bb2a52c2b
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType2.pkl
@@ -0,0 +1 @@
+typealias Foo = this
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType3.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType3.pkl
new file mode 100644
index 000000000..1310596d2
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType3.pkl
@@ -0,0 +1,21 @@
+// cover custom this contexts in a final module
+
+local foo: Listing(any((it) -> it is this)) = new { bar }
+local bar: Listing = new { foo }
+res1 = foo.length
+
+local baz: Listing = new {
+ new Listing { "hello" }
+ new Mapping { ["hello"] = "world" }
+ module
+}
+
+res2 = (baz) {
+ [[this is this]] {
+ res2 = "blah"
+ }
+ when (module is this) {
+ 123
+ }
+ module is this
+}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType4.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType4.pkl
new file mode 100644
index 000000000..815977a9f
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType4.pkl
@@ -0,0 +1,22 @@
+open module thisType4
+// cover custom this contexts in an open module
+
+local foo: Listing(any((it) -> it is this)) = new { bar }
+local bar: Listing = new { foo }
+res1 = foo.length
+
+local baz: Listing = new {
+ new Listing { "hello" }
+ new Mapping { ["hello"] = "world" }
+ module
+}
+
+res2 = (baz) {
+ [[this is this]] {
+ res2 = "blah"
+ }
+ when (module is this) {
+ 123
+ }
+ module is this
+}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType5.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType5.pkl
new file mode 100644
index 000000000..525d4a792
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType5.pkl
@@ -0,0 +1,16 @@
+// test this type interacting with local class
+
+local class Foo {
+ bar: this? = new { bar = null }
+ baz = new Foo {} is this
+
+ function qux(a: this): this = this
+ function quux(a: Any): Boolean = a is this
+}
+
+local foo = new Foo {}
+
+res1 = foo.bar
+res2 = foo.baz
+res3 = foo.qux(new Foo {})
+res4 = foo.quux(new Foo {})
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType6.pkl b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType6.pkl
new file mode 100644
index 000000000..008f9d938
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/input/types/thisType6.pkl
@@ -0,0 +1,3 @@
+open module thisType6
+
+class Foo extends this
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/api/reference.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/api/reference.pcf
index edd5f67aa..4ae08d80b 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/output/api/reference.pcf
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/api/reference.pcf
@@ -60,3 +60,4 @@ aValuesJoined = """
${b.outputs.nonString}
"""
typeArgs = "${null.prop}"
+badThisRef = "Expected value of type `pkl.ref#Reference`, but got type `pkl.ref#Reference`. Value: Reference(new D {}, reference#A, new BadResource { name = ? })"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/api/reflect1.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/api/reflect1.pcf
index 77e58501c..3124707f6 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/output/api/reflect1.pcf
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/api/reflect1.pcf
@@ -26,6 +26,8 @@ facts {
true
true
true
+ true
+ true
}
["Reflecting a class"] {
true
@@ -67,7 +69,7 @@ facts {
}
examples {
["Reflected module properties of unknown type metadata"] {
- Set("int", "float", "string", "boolean", "duration", "dataSize", "pair", "list", "set", "map", "listing", "mapping", "dynamic", "typed", "int2", "float2", "string2", "boolean2", "duration2", "dataSize2", "pair2", "list2", "set2", "map2", "listing2", "mapping2", "dynamic2", "typed2", "any", "noth", "unkn", "union", "nullable", "stringLiteral", "constrained", "aliased", "hiddenProp", "constProp", "fixedProp")
+ Set("int", "float", "string", "boolean", "duration", "dataSize", "pair", "list", "set", "map", "listing", "mapping", "dynamic", "typed", "int2", "float2", "string2", "boolean2", "duration2", "dataSize2", "pair2", "list2", "set2", "map2", "listing2", "mapping2", "dynamic2", "typed2", "any", "noth", "unkn", "union", "nullable", "stringLiteral", "constrained", "aliased", "mod", "self", "hiddenProp", "constProp", "fixedProp")
new {
hasExpectedLocation = true
docComment = "module property doc comment"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference20.err b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference20.err
index 08663a8a8..470beada2 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference20.err
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference20.err
@@ -1,8 +1,8 @@
–– Pkl Error ––
not supported
-x | function renderReference(reference: ref.Reference): String = throw("not supported")
- ^^^^^^^^^^^^^^^^^^^^^^
+x | function renderReference(reference: ref.Reference): String = throw("not supported")
+ ^^^^^^^^^^^^^^^^^^^^^^
at reference20#D.renderReference (file:///$snippetsDir/input/errors/reference20.pkl)
xxx | function toString(): String = getDomain().renderReference(this)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference28.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference28.pcf
new file mode 100644
index 000000000..989abf8f6
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference28.pcf
@@ -0,0 +1,12 @@
+res0 = ""
+res1 = "parent"
+res2 = "parent.parent"
+res3 = "children.0"
+res4 = "children.0.parent"
+res5 = "children.0.children.0"
+res0a = ""
+res1a = "parent"
+res2a = "parent.parent"
+res3a = "children.0"
+res4a = "children.0.parent"
+res5a = "children.0.children.0"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference29.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference29.pcf
new file mode 100644
index 000000000..81ac88430
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference29.pcf
@@ -0,0 +1,6 @@
+res0 = ""
+res1 = "parent"
+res2 = "parent.parent"
+res3 = "children.0"
+res4 = "children.0.parent"
+res5 = "children.0.children.0"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference30.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference30.pcf
new file mode 100644
index 000000000..81ac88430
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/errors/reference30.pcf
@@ -0,0 +1,6 @@
+res0 = ""
+res1 = "parent"
+res2 = "parent.parent"
+res3 = "children.0"
+res4 = "children.0.parent"
+res5 = "children.0.children.0"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType1.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType1.err
new file mode 100644
index 000000000..b9573396e
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType1.err
@@ -0,0 +1,5 @@
+result = "ok"
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType1.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType1.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType1.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType1.pkl)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType1.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType1.pcf
deleted file mode 100644
index 53dc6b389..000000000
--- a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType1.pcf
+++ /dev/null
@@ -1 +0,0 @@
-result = "ok"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType2.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType2.err
new file mode 100644
index 000000000..8eee1b684
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType2.err
@@ -0,0 +1,5 @@
+result = "ok"
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType2.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType2.pcf
deleted file mode 100644
index 53dc6b389..000000000
--- a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType2.pcf
+++ /dev/null
@@ -1 +0,0 @@
-result = "ok"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType3.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType3.err
new file mode 100644
index 000000000..8eee1b684
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType3.err
@@ -0,0 +1,5 @@
+result = "ok"
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType2.pkl)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType3.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType3.pcf
deleted file mode 100644
index 53dc6b389..000000000
--- a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType3.pcf
+++ /dev/null
@@ -1 +0,0 @@
-result = "ok"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType4.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType4.err
new file mode 100644
index 000000000..2a3040b5f
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType4.err
@@ -0,0 +1,13 @@
+qux = false
+corge {
+ grault {
+ garply = false
+ }
+}
+pkl: WARN: Cannot reference `module` type within an annotation body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType4.pkl)
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType4.pkl)
+pkl: WARN: Cannot reference `module` type within a type alias body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType4.pkl)
+pkl: WARN: Cannot reference `module` type from const property `currentModuleType4#qux`. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType4.pkl)
+pkl: WARN: Cannot reference `module` type from const property `currentModuleType4#corge`. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType4.pkl)
+pkl: WARN: Cannot reference `module` type from const property `currentModuleType4#waldo`. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType4.pkl)
+pkl: WARN: Cannot reference `module` type from const method `currentModuleType4#quux`. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType4.pkl)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType5.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType5.pcf
new file mode 100644
index 000000000..1248f1e07
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType5.pcf
@@ -0,0 +1,2 @@
+x = 1
+y = 1
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType6.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType6.err
new file mode 100644
index 000000000..c7fd6bed2
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/currentModuleType6.err
@@ -0,0 +1,19 @@
+x = -1
+res1 {
+ x = 1
+ y = 1
+ modName = "moduleTypeProperty"
+}
+res2 {
+ x = 1
+ y = 2
+ modName = "moduleTypeProperty"
+}
+res3 {
+ x = 2
+ y = 2
+ modName = "currentModuleType6#ModuleSubclass"
+ mod2x = -1
+}
+res4 = "Expected value of type `currentModuleType6#ModuleSubclass`, but got type `moduleTypeProperty`. Value: new ModuleClass { x = ?; y = ?; modName = ? }"
+pkl: WARN: Cannot reference `module` type within a class body. This will be an error in a future release. (file:///$snippetsDir/input/types/currentModuleType6.pkl)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType1.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType1.pcf
new file mode 100644
index 000000000..8144e6f08
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType1.pcf
@@ -0,0 +1,61 @@
+res1a = 1
+res1b = 2
+res1c = 3
+res1d = 2
+res1e = 4
+res4 = null
+res7 = "Expected value of type `thisType1#Bad`, but got type `String`. Value: \"abc\""
+res8 = "Expected value of type `thisType1#Bad`, but got type `thisType1#Person`. Value: new Person {}"
+res9 = "Expected value of type `thisType1#Bad`, but got type `thisType1#Person`. Value: new Person {}"
+res10 = "Expected value of type `thisType1#Bad`, but got type `thisType1#Person`. Value: new Person {}"
+res11a = 2
+res11b = 3
+res11c = 4
+res11d = 4
+res12 = "Expected value of type `thisType1#Good`, but got type `thisType1`. Value: new ModuleClass { res1a = 1; res1b = 2; res1c = 3; res1d = 2; res1e = 4; res4..."
+res13a = 1
+res14 = List(3)
+res14a = "Expected value of type `thisType1#Good`, but got type `thisType1`. Value: new ModuleClass { res1a = 1; res1b = 2; res1c = 3; res1d = 2; res1e = 4; res4..."
+res14b = 5
+res15 = List(new {
+ x = 3
+})
+res15a = "Expected value of type `thisType1#B`, but got type `thisType1#A`. Value: new A { x = 1 }"
+res15b = List(new {
+ x = 3
+})
+res16 = 5
+res16a = "Expected value of type `thisType1`, but got type `Dynamic`. Value: new Dynamic { x = ? }"
+res17 = 3
+res18 {
+ 1
+}
+res19 {
+ baz {
+ x = 3
+ }
+}
+res20a = 6
+res21a = 6
+res22a {
+ "thisType1: 1"
+ "thisType1#Good: 2"
+ "thisType1: 3"
+ "thisType1#Good: 4"
+}
+res22b {
+ "thisType1#Good: 1"
+ "thisType1#Good: 2"
+ "thisType1#Good: 3"
+ "thisType1#Good: 4"
+}
+res23 {
+ y = 2
+}
+res23a = "thisType1#ThisAnnotation"
+res23b = "thisType1#ThisAnnotation"
+res24 {
+ y = 2
+}
+res24a = "thisType1#ThatAnnotation"
+res24b = "thisType1#ThisAnnotation"
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType2.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType2.err
new file mode 100644
index 000000000..85f4da737
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType2.err
@@ -0,0 +1,6 @@
+–– Pkl Error ––
+Cannot reference `this` type within a type alias body.
+
+x | typealias Foo = this
+ ^^^^
+at thisType2#Foo (file:///$snippetsDir/input/types/thisType2.pkl)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType3.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType3.pcf
new file mode 100644
index 000000000..043504165
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType3.pcf
@@ -0,0 +1,15 @@
+res1 = 1
+res2 {
+ new {
+ "hello"
+ }
+ new {
+ ["hello"] = "world"
+ }
+ new {
+ res1 = 1
+ res2 = "blah"
+ }
+ 123
+ false
+}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType4.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType4.pcf
new file mode 100644
index 000000000..043504165
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType4.pcf
@@ -0,0 +1,15 @@
+res1 = 1
+res2 {
+ new {
+ "hello"
+ }
+ new {
+ ["hello"] = "world"
+ }
+ new {
+ res1 = 1
+ res2 = "blah"
+ }
+ 123
+ false
+}
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType5.pcf b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType5.pcf
new file mode 100644
index 000000000..30df5c4ad
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType5.pcf
@@ -0,0 +1,13 @@
+res1 {
+ bar = null
+ baz = true
+}
+res2 = true
+res3 {
+ bar {
+ bar = null
+ baz = true
+ }
+ baz = true
+}
+res4 = true
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType6.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType6.err
new file mode 100644
index 000000000..4929a2b7d
--- /dev/null
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/thisType6.err
@@ -0,0 +1,6 @@
+–– Pkl Error ––
+`this` is not a valid supertype.
+
+x | class Foo extends this
+ ^^^^
+at thisType6#Foo (file:///$snippetsDir/input/types/thisType6.pkl)
diff --git a/pkl-core/src/test/files/LanguageSnippetTests/output/types/typeAlias6.err b/pkl-core/src/test/files/LanguageSnippetTests/output/types/typeAlias6.err
index 7ae49d5a9..15e7ebd20 100644
--- a/pkl-core/src/test/files/LanguageSnippetTests/output/types/typeAlias6.err
+++ b/pkl-core/src/test/files/LanguageSnippetTests/output/types/typeAlias6.err
@@ -1,3 +1,4 @@
+pkl: WARN: Cannot reference `module` type within a type alias body. This will be an error in a future release. (file:///$snippetsDir/input-helper/types/typeAliasModule.pkl)
–– Pkl Error ––
Expected value of type `typeAliasModule`, but got type `typeAlias6`.
Value: new ModuleClass { res = ? }
diff --git a/pkl-doc/src/main/kotlin/org/pkl/doc/PackageDataGenerator.kt b/pkl-doc/src/main/kotlin/org/pkl/doc/PackageDataGenerator.kt
index 6fff6c81a..12e9e59c6 100644
--- a/pkl-doc/src/main/kotlin/org/pkl/doc/PackageDataGenerator.kt
+++ b/pkl-doc/src/main/kotlin/org/pkl/doc/PackageDataGenerator.kt
@@ -1,5 +1,5 @@
/*
- * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
+ * Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -468,6 +468,9 @@ private fun findTypesUsedBy(
)
}
}
+ PType.THIS -> {
+ // do nothing, the enclosing PType.Class has already been visited
+ }
PType.NOTHING -> {}
is PType.Nullable -> {
findTypesUsedBy(type.baseType, enclosingType, enclosingPackage, result)
diff --git a/pkl-doc/src/main/kotlin/org/pkl/doc/PageGenerator.kt b/pkl-doc/src/main/kotlin/org/pkl/doc/PageGenerator.kt
index 1e632eec2..ce7aea921 100644
--- a/pkl-doc/src/main/kotlin/org/pkl/doc/PageGenerator.kt
+++ b/pkl-doc/src/main/kotlin/org/pkl/doc/PageGenerator.kt
@@ -347,6 +347,9 @@ internal abstract class PageGenerator(
PType.MODULE -> {
+"module"
}
+ PType.THIS -> {
+ +"this"
+ }
is PType.StringLiteral -> {
+"\"${type.literal}\""
}
diff --git a/pkl-doc/src/main/kotlin/org/pkl/doc/SearchIndexGenerator.kt b/pkl-doc/src/main/kotlin/org/pkl/doc/SearchIndexGenerator.kt
index 71c4eeb75..514b61ec0 100644
--- a/pkl-doc/src/main/kotlin/org/pkl/doc/SearchIndexGenerator.kt
+++ b/pkl-doc/src/main/kotlin/org/pkl/doc/SearchIndexGenerator.kt
@@ -343,6 +343,9 @@ internal class SearchIndexGenerator(private val outputDir: Path, consoleOut: Out
PType.MODULE -> {
append("module")
}
+ PType.THIS -> {
+ append("this")
+ }
is PType.StringLiteral -> {
append("\\\"${type.literal}\\\"")
}
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/Module Containing Spaces/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/Module Containing Spaces/index.html
index 38a5fcc8f..210cae800 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/Module Containing Spaces/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/Module Containing Spaces/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/BaseClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/BaseClass.html
index ddb2f5424..3640fbd9c 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/BaseClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/BaseClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/index.html
index b1a220930..76b42d3c5 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/baseModule/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClass.html
index 084024b0f..50f5debbd 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClass.html
@@ -55,7 +55,7 @@
function
@@ -82,7 +82,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClss.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClss.html
index ded131e97..a9288cdfe 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClss.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClss.html
@@ -57,7 +57,7 @@
function
@@ -84,7 +84,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html
index 40baa3c9e..df4f1c08b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html
@@ -57,7 +57,7 @@
function
@@ -84,7 +84,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/index.html
index a3ede57bb..76c54bc82 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classAnnotations/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments1.html
index 3fd66de13..bfec340bc 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments1.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments2.html
index 7251e67e6..7682b3fa2 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments2.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments3.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments3.html
index cbdd47863..1ac61af5a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments3.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments3.html
@@ -53,7 +53,7 @@
function
@@ -80,7 +80,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments4.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments4.html
index 6811e2f6d..744ab79c6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments4.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments4.html
@@ -57,7 +57,7 @@ Class with multi-line and multi-paragraph doc comment (paragraph2, line2).
function
@@ -84,7 +84,7 @@ Class with multi-line and multi-paragraph doc comment (paragraph2, line2).
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments5.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments5.html
index 47e1e53c9..9dffcbb89 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments5.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments5.html
@@ -53,7 +53,7 @@
function
@@ -80,7 +80,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments6.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments6.html
index 0445ff447..06c87d4f5 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments6.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments6.html
@@ -55,7 +55,7 @@
function
@@ -82,7 +82,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments7.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments7.html
index 5184fba22..f8a1c50b4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments7.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments7.html
@@ -53,7 +53,7 @@
function
@@ -80,7 +80,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments8.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments8.html
index 2f5d6936c..b098cb907 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments8.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/Comments8.html
@@ -104,7 +104,7 @@ class Person {
function
@@ -131,7 +131,7 @@ class Person {
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/index.html
index 81791d7e5..05d3ae40f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classComments/index.html
@@ -148,7 +148,7 @@ command line.
function
@@ -175,7 +175,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass1.html
index 7c4d757ad..2179f0df3 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass1.html
@@ -71,7 +71,7 @@
function
@@ -98,7 +98,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass2.html
index 0070cc5b2..315861773 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass2.html
@@ -82,7 +82,7 @@
function
@@ -109,7 +109,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass3.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass3.html
index 3c0b294a3..4ed421307 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass3.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass3.html
@@ -82,7 +82,7 @@
function
@@ -109,7 +109,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass4.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass4.html
index 487022eec..f96eb4d68 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass4.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/MyClass4.html
@@ -93,7 +93,7 @@
function
@@ -120,7 +120,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/index.html
index aa47831e7..8bb36a2e5 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classInheritance/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/Comments.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/Comments.html
index a7968c272..07d70fd1f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/Comments.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/Comments.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/index.html
index 9802bf478..25a082bd9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodComments/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/Modifiers.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/Modifiers.html
index fad4c9c1a..eac3d0a50 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/Modifiers.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/Modifiers.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/index.html
index f74558369..776008d47 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodModifiers/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html
index 4f504e525..037f9b8a9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/index.html
index 50ad8e81d..6705271b0 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeAnnotations/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/MyClass.html
index 01b9b698c..d28298c9d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html
index ccb964fa8..26c08cff9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/index.html
index 642f29bea..06ab4173a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classMethodTypeReferences/index.html
@@ -80,7 +80,7 @@ command line.
function
@@ -107,7 +107,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html
index 612bfb053..4403aa8c4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html
index 8eea5a54e..f71142122 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/index.html
index 416e8a3db..5fc9d87fd 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyAnnotations/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/Comments.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/Comments.html
index a60749d1c..cba92837f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/Comments.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/Comments.html
@@ -145,7 +145,7 @@ doc comment.
function
@@ -172,7 +172,7 @@ doc comment.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/index.html
index 06a1af20d..8ab4a0406 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyComments/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/Modifiers.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/Modifiers.html
index 3edc2e14a..88c3f2abb 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/Modifiers.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/Modifiers.html
@@ -83,7 +83,7 @@
function
@@ -110,7 +110,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/index.html
index 7e9bc2a47..99b455021 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyModifiers/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html
index 351f800d6..462c56620 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html
@@ -179,7 +179,7 @@
function
@@ -206,7 +206,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/index.html
index 75963961c..5114ecf2b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeAnnotations/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html
index 6f7336638..7f1615596 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html
index 6738f8a70..459b26648 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html
@@ -167,7 +167,7 @@
function
@@ -194,7 +194,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/index.html
index e757f293c..cb25e926d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classPropertyTypeReferences/index.html
@@ -80,7 +80,7 @@ command line.
function
@@ -107,7 +107,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Address.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Address.html
index 8498c3fb2..0c49199e9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Address.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Address.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person1.html
index a28041804..f59725ca9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person1.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person2.html
index 87f4b6b17..ad933bcc6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Person2.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Project.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Project.html
index 3fa13b668..e0a6bf82b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Project.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/Project.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/index.html
index 94c9f4cfb..e60e3ae67 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/classTypeConstraints/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject1/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject1/index.html
index 0bbbbc075..65171a22e 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject1/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject1/index.html
@@ -90,7 +90,7 @@ command line.
function
@@ -117,7 +117,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject2/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject2/index.html
index e4e622d03..2509f150a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject2/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docExampleSubject2/index.html
@@ -90,7 +90,7 @@ command line.
function
@@ -117,7 +117,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/Person.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/Person.html
index 00696b31e..b50f1d7b8 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/Person.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/Person.html
@@ -89,7 +89,7 @@
function
@@ -116,7 +116,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/index.html
index 3a061c53c..0ca2a1ab6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/docLinks/index.html
@@ -108,7 +108,7 @@ command line.
function
@@ -135,7 +135,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/methodAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/methodAnnotations/index.html
index 834311fdb..95827b080 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/methodAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/methodAnnotations/index.html
@@ -77,7 +77,7 @@ command line.
function
@@ -104,7 +104,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleComments/index.html
index 24f298bde..13ccf1875 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleComments/index.html
@@ -129,7 +129,7 @@ command line.
function
@@ -156,7 +156,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/ExtendClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/ExtendClass.html
index 781c74702..9b4f13b0b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/ExtendClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/ExtendClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/index.html
index 051796cca..46f0eed29 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleExtend/index.html
@@ -100,7 +100,7 @@ command line.
function
@@ -127,7 +127,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleInfoAnnotation/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleInfoAnnotation/index.html
index 96d2e0f3f..462c458f0 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleInfoAnnotation/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleInfoAnnotation/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodCommentInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodCommentInheritance/index.html
index 1af9eee40..8c7bed13e 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodCommentInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodCommentInheritance/index.html
@@ -77,7 +77,7 @@ command line.
function
@@ -104,7 +104,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodComments/index.html
index 0fdd243a1..9975f5194 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodComments/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodModifiers/index.html
index 06c96ad88..381959455 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodModifiers/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html
index b1bc4c076..bed22e2b1 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html
index e0a019a52..33b5c9d66 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/index.html
index 939ebf739..f2a455f60 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleMethodTypeReferences/index.html
@@ -80,7 +80,7 @@ command line.
function
@@ -107,7 +107,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html
index 993894f49..5e22fd7a4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html
index a13e63fb8..6ef920930 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html
index e1b717574..615d57b38 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/index.html
index fd448c89a..d6bdb04be 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyAnnotations/index.html
@@ -160,7 +160,7 @@ command line.
function
@@ -187,7 +187,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyCommentInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyCommentInheritance/index.html
index fb6fcbc08..9e7d70aab 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyCommentInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyCommentInheritance/index.html
@@ -210,7 +210,7 @@ code = 2
function
@@ -237,7 +237,7 @@ code = 2
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyComments/index.html
index 5ae1d42b2..29717ca36 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyComments/index.html
@@ -211,7 +211,7 @@ code = 2
function
@@ -238,7 +238,7 @@ code = 2
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyModifiers/index.html
index 91622fcdb..2a0ae66a0 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyModifiers/index.html
@@ -90,7 +90,7 @@ command line.
function
@@ -117,7 +117,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html
index d4a128e4a..0bde7d92b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html
@@ -198,7 +198,7 @@ command line.
function
@@ -225,7 +225,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html
index 1de8cc07c..5ad15f0ef 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/index.html
index 5f4cad3a2..043a17fa7 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/modulePropertyTypeReferences/index.html
@@ -188,7 +188,7 @@ command line.
function
@@ -215,7 +215,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes1/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes1/index.html
index 76233af02..a951ea129 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes1/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes1/index.html
@@ -88,7 +88,7 @@ command line.
function
@@ -115,7 +115,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/Foo.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/Foo.html
index e6e4735ce..465991292 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/Foo.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/Foo.html
@@ -147,7 +147,7 @@
function
@@ -174,7 +174,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/index.html
index 76bfbe855..00d870c87 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/moduleTypes2/index.html
@@ -166,7 +166,7 @@ command line.
function
@@ -193,7 +193,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html
index 0d7b9a592..662e0d66f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/index.html
index 322980f86..6fecb8392 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/nested/nested2/nestedModule/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/MyClass.html
index 031f92a6a..210bf7957 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/index.html
index 190d3585a..01a2ae73d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/shared/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/ternalPackage/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/ternalPackage/index.html
index 57dc9fb07..fa1f950aa 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/ternalPackage/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/ternalPackage/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/Person2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/Person2.html
index 09ead29e3..569d1ddc7 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/Person2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/Person2.html
@@ -126,7 +126,7 @@
function
@@ -153,7 +153,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/index.html
index 1653952d6..56e6eecb8 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typeAliasInheritance/index.html
@@ -146,7 +146,7 @@ command line.
function
@@ -173,7 +173,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/Person.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/Person.html
index d2c348a59..1210bb5fa 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/Person.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/Person.html
@@ -104,7 +104,7 @@
function
@@ -131,7 +131,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/index.html
index f40e98f62..904ad2d72 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases/index.html
@@ -124,7 +124,7 @@ command line.
function
@@ -151,7 +151,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Foo.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Foo.html
index a73865abc..38ecead46 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Foo.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Foo.html
@@ -158,7 +158,7 @@
function
@@ -185,7 +185,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Person.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Person.html
index cdb428f7a..51375194a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Person.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/Person.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/index.html
index e4340119b..d902c9e5a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/typealiases2/index.html
@@ -178,7 +178,7 @@ command line.
function
@@ -205,7 +205,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unionTypes/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unionTypes/index.html
index 6229ded88..f916e8102 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unionTypes/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unionTypes/index.html
@@ -143,7 +143,7 @@ command line.
function
@@ -170,7 +170,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedClass/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedClass/index.html
index 1e54c731b..62f5273a6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedClass/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedClass/index.html
@@ -88,7 +88,7 @@ command line.
function
@@ -115,7 +115,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/MyClass.html
index e84026206..8b12f8d0d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/index.html
index ec46e8552..fd6eecc16 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedMethod/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/MyClass.html
index 92a5073c6..5db9d2aa4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/index.html
index ff585229d..a65f4b20d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package1/1.2.3/unlistedProperty/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class Two {}.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class Two {}.html
index c6cca18fb..a540f9f7e 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class Two {}.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class Two {}.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class3.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class3.html
index 194e613bd..ff9949fbb 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class3.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/Class3.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/index.html
index 15a454b82..dbb7eded6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/com.package2/4.5.6/Module3/index.html
@@ -101,7 +101,7 @@ command line.
function
@@ -128,7 +128,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/Bird/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/Bird/index.html
index 520be3092..2aa8a8a68 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/Bird/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/Bird/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/allFruit/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/allFruit/index.html
index 9a1898406..2bed6b7c1 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/allFruit/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/allFruit/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/catalog/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/catalog/index.html
index e0f043a51..6e1a75c13 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/catalog/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/birds/0.5.0/catalog/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/deprecated/1.0.0/deprecated/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/deprecated/1.0.0/deprecated/index.html
index d28044486..6f4272269 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/deprecated/1.0.0/deprecated/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/deprecated/1.0.0/deprecated/index.html
@@ -101,7 +101,7 @@ command line.
function
@@ -128,7 +128,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/fruit/1.1.0/Fruit/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/fruit/1.1.0/Fruit/index.html
index 50707f712..be04c020a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/fruit/1.1.0/Fruit/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-1/localhost(3a)0/fruit/1.1.0/Fruit/index.html
@@ -86,7 +86,7 @@ command line.
function
@@ -113,7 +113,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/Module Containing Spaces/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/Module Containing Spaces/index.html
index 38a5fcc8f..210cae800 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/Module Containing Spaces/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/Module Containing Spaces/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/BaseClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/BaseClass.html
index ddb2f5424..3640fbd9c 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/BaseClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/BaseClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/index.html
index b1a220930..76b42d3c5 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/baseModule/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClass.html
index 084024b0f..50f5debbd 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClass.html
@@ -55,7 +55,7 @@
function
@@ -82,7 +82,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClss.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClss.html
index ded131e97..a9288cdfe 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClss.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClss.html
@@ -57,7 +57,7 @@
function
@@ -84,7 +84,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html
index 40baa3c9e..df4f1c08b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/AnnotatedClssWithExpandableComment.html
@@ -57,7 +57,7 @@
function
@@ -84,7 +84,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/index.html
index a3ede57bb..76c54bc82 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classAnnotations/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments1.html
index 3fd66de13..bfec340bc 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments1.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments2.html
index 7251e67e6..7682b3fa2 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments2.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments3.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments3.html
index cbdd47863..1ac61af5a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments3.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments3.html
@@ -53,7 +53,7 @@
function
@@ -80,7 +80,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments4.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments4.html
index 6811e2f6d..744ab79c6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments4.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments4.html
@@ -57,7 +57,7 @@ Class with multi-line and multi-paragraph doc comment (paragraph2, line2).
function
@@ -84,7 +84,7 @@ Class with multi-line and multi-paragraph doc comment (paragraph2, line2).
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments5.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments5.html
index 47e1e53c9..9dffcbb89 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments5.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments5.html
@@ -53,7 +53,7 @@
function
@@ -80,7 +80,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments6.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments6.html
index 0445ff447..06c87d4f5 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments6.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments6.html
@@ -55,7 +55,7 @@
function
@@ -82,7 +82,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments7.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments7.html
index 5184fba22..f8a1c50b4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments7.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments7.html
@@ -53,7 +53,7 @@
function
@@ -80,7 +80,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments8.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments8.html
index 2f5d6936c..b098cb907 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments8.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/Comments8.html
@@ -104,7 +104,7 @@ class Person {
function
@@ -131,7 +131,7 @@ class Person {
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/index.html
index 81791d7e5..05d3ae40f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classComments/index.html
@@ -148,7 +148,7 @@ command line.
function
@@ -175,7 +175,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass1.html
index 7c4d757ad..2179f0df3 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass1.html
@@ -71,7 +71,7 @@
function
@@ -98,7 +98,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass2.html
index 0070cc5b2..315861773 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass2.html
@@ -82,7 +82,7 @@
function
@@ -109,7 +109,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass3.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass3.html
index 3c0b294a3..4ed421307 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass3.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass3.html
@@ -82,7 +82,7 @@
function
@@ -109,7 +109,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass4.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass4.html
index 487022eec..f96eb4d68 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass4.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/MyClass4.html
@@ -93,7 +93,7 @@
function
@@ -120,7 +120,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/index.html
index aa47831e7..8bb36a2e5 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classInheritance/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/Comments.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/Comments.html
index a7968c272..07d70fd1f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/Comments.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/Comments.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/index.html
index 9802bf478..25a082bd9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodComments/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/Modifiers.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/Modifiers.html
index fad4c9c1a..eac3d0a50 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/Modifiers.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/Modifiers.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/index.html
index f74558369..776008d47 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodModifiers/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html
index 4f504e525..037f9b8a9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/TypeAnnotations.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/index.html
index 50ad8e81d..6705271b0 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeAnnotations/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/MyClass.html
index 01b9b698c..d28298c9d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html
index ccb964fa8..26c08cff9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/TypeReferences.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/index.html
index 642f29bea..06ab4173a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classMethodTypeReferences/index.html
@@ -80,7 +80,7 @@ command line.
function
@@ -107,7 +107,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html
index 612bfb053..4403aa8c4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/ClassWithAnnotatedProperty.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html
index 8eea5a54e..f71142122 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/UserDefinedAnnotation.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/index.html
index 416e8a3db..5fc9d87fd 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyAnnotations/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/Comments.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/Comments.html
index a60749d1c..cba92837f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/Comments.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/Comments.html
@@ -145,7 +145,7 @@ doc comment.
function
@@ -172,7 +172,7 @@ doc comment.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/index.html
index 06a1af20d..8ab4a0406 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyComments/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/Modifiers.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/Modifiers.html
index 3edc2e14a..88c3f2abb 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/Modifiers.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/Modifiers.html
@@ -83,7 +83,7 @@
function
@@ -110,7 +110,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/index.html
index 7e9bc2a47..99b455021 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyModifiers/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html
index 351f800d6..462c56620 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/TypeAnnotations.html
@@ -179,7 +179,7 @@
function
@@ -206,7 +206,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/index.html
index 75963961c..5114ecf2b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeAnnotations/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html
index 6f7336638..7f1615596 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html
index 6738f8a70..459b26648 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/TypeReferences.html
@@ -167,7 +167,7 @@
function
@@ -194,7 +194,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/index.html
index e757f293c..cb25e926d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classPropertyTypeReferences/index.html
@@ -80,7 +80,7 @@ command line.
function
@@ -107,7 +107,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Address.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Address.html
index 8498c3fb2..0c49199e9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Address.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Address.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person1.html
index a28041804..f59725ca9 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person1.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person2.html
index 87f4b6b17..ad933bcc6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Person2.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Project.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Project.html
index 3fa13b668..e0a6bf82b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Project.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/Project.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/index.html
index 94c9f4cfb..e60e3ae67 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/classTypeConstraints/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject1/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject1/index.html
index 0bbbbc075..65171a22e 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject1/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject1/index.html
@@ -90,7 +90,7 @@ command line.
function
@@ -117,7 +117,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject2/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject2/index.html
index e4e622d03..2509f150a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject2/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docExampleSubject2/index.html
@@ -90,7 +90,7 @@ command line.
function
@@ -117,7 +117,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/Person.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/Person.html
index 00696b31e..b50f1d7b8 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/Person.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/Person.html
@@ -89,7 +89,7 @@
function
@@ -116,7 +116,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/index.html
index 3a061c53c..0ca2a1ab6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/docLinks/index.html
@@ -108,7 +108,7 @@ command line.
function
@@ -135,7 +135,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/methodAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/methodAnnotations/index.html
index 834311fdb..95827b080 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/methodAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/methodAnnotations/index.html
@@ -77,7 +77,7 @@ command line.
function
@@ -104,7 +104,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleComments/index.html
index 24f298bde..13ccf1875 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleComments/index.html
@@ -129,7 +129,7 @@ command line.
function
@@ -156,7 +156,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/ExtendClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/ExtendClass.html
index 781c74702..9b4f13b0b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/ExtendClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/ExtendClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/index.html
index 051796cca..46f0eed29 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleExtend/index.html
@@ -100,7 +100,7 @@ command line.
function
@@ -127,7 +127,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleInfoAnnotation/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleInfoAnnotation/index.html
index 96d2e0f3f..462c458f0 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleInfoAnnotation/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleInfoAnnotation/index.html
@@ -79,7 +79,7 @@ command line.
function
@@ -106,7 +106,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodCommentInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodCommentInheritance/index.html
index 1af9eee40..8c7bed13e 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodCommentInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodCommentInheritance/index.html
@@ -77,7 +77,7 @@ command line.
function
@@ -104,7 +104,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodComments/index.html
index 0fdd243a1..9975f5194 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodComments/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodModifiers/index.html
index 06c96ad88..381959455 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodModifiers/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html
index b1bc4c076..bed22e2b1 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeAnnotations/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html
index e0a019a52..33b5c9d66 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/index.html
index 939ebf739..f2a455f60 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleMethodTypeReferences/index.html
@@ -80,7 +80,7 @@ command line.
function
@@ -107,7 +107,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html
index 993894f49..5e22fd7a4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation.html
@@ -81,7 +81,7 @@
function
@@ -108,7 +108,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html
index a13e63fb8..6ef920930 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation1.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html
index e1b717574..615d57b38 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/UserDefinedAnnotation2.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/index.html
index fd448c89a..d6bdb04be 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyAnnotations/index.html
@@ -160,7 +160,7 @@ command line.
function
@@ -187,7 +187,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyCommentInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyCommentInheritance/index.html
index fb6fcbc08..9e7d70aab 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyCommentInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyCommentInheritance/index.html
@@ -210,7 +210,7 @@ code = 2
function
@@ -237,7 +237,7 @@ code = 2
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyComments/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyComments/index.html
index 5ae1d42b2..29717ca36 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyComments/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyComments/index.html
@@ -211,7 +211,7 @@ code = 2
function
@@ -238,7 +238,7 @@ code = 2
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyModifiers/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyModifiers/index.html
index 91622fcdb..2a0ae66a0 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyModifiers/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyModifiers/index.html
@@ -90,7 +90,7 @@ command line.
function
@@ -117,7 +117,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html
index d4a128e4a..0bde7d92b 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeAnnotations/index.html
@@ -198,7 +198,7 @@ command line.
function
@@ -225,7 +225,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html
index 1de8cc07c..5ad15f0ef 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/index.html
index 5f4cad3a2..043a17fa7 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/modulePropertyTypeReferences/index.html
@@ -188,7 +188,7 @@ command line.
function
@@ -215,7 +215,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes1/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes1/index.html
index 76233af02..a951ea129 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes1/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes1/index.html
@@ -88,7 +88,7 @@ command line.
function
@@ -115,7 +115,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/Foo.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/Foo.html
index e6e4735ce..465991292 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/Foo.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/Foo.html
@@ -147,7 +147,7 @@
function
@@ -174,7 +174,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/index.html
index 76bfbe855..00d870c87 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/moduleTypes2/index.html
@@ -166,7 +166,7 @@ command line.
function
@@ -193,7 +193,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html
index 0d7b9a592..662e0d66f 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/index.html
index 322980f86..6fecb8392 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/nested/nested2/nestedModule/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/MyClass.html
index 031f92a6a..210bf7957 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/index.html
index 190d3585a..01a2ae73d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/shared/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/ternalPackage/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/ternalPackage/index.html
index 57dc9fb07..fa1f950aa 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/ternalPackage/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/ternalPackage/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/Person2.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/Person2.html
index 09ead29e3..569d1ddc7 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/Person2.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/Person2.html
@@ -126,7 +126,7 @@
function
@@ -153,7 +153,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/index.html
index 1653952d6..56e6eecb8 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typeAliasInheritance/index.html
@@ -146,7 +146,7 @@ command line.
function
@@ -173,7 +173,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/Person.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/Person.html
index d2c348a59..1210bb5fa 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/Person.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/Person.html
@@ -104,7 +104,7 @@
function
@@ -131,7 +131,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/index.html
index f40e98f62..904ad2d72 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases/index.html
@@ -124,7 +124,7 @@ command line.
function
@@ -151,7 +151,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Foo.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Foo.html
index a73865abc..38ecead46 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Foo.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Foo.html
@@ -158,7 +158,7 @@
function
@@ -185,7 +185,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Person.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Person.html
index cdb428f7a..51375194a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Person.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/Person.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/index.html
index e4340119b..d902c9e5a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/typealiases2/index.html
@@ -178,7 +178,7 @@ command line.
function
@@ -205,7 +205,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unionTypes/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unionTypes/index.html
index 6229ded88..f916e8102 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unionTypes/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unionTypes/index.html
@@ -143,7 +143,7 @@ command line.
function
@@ -170,7 +170,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedClass/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedClass/index.html
index 1e54c731b..62f5273a6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedClass/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedClass/index.html
@@ -88,7 +88,7 @@ command line.
function
@@ -115,7 +115,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/MyClass.html
index e84026206..8b12f8d0d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/index.html
index ec46e8552..fd6eecc16 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedMethod/index.html
@@ -89,7 +89,7 @@ command line.
function
@@ -116,7 +116,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/MyClass.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/MyClass.html
index 92a5073c6..5db9d2aa4 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/MyClass.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/MyClass.html
@@ -52,7 +52,7 @@
function
@@ -79,7 +79,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/index.html
index ff585229d..a65f4b20d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package1/1.2.3/unlistedProperty/index.html
@@ -78,7 +78,7 @@ command line.
function
@@ -105,7 +105,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class Two {}.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class Two {}.html
index c6cca18fb..a540f9f7e 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class Two {}.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class Two {}.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class3.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class3.html
index 194e613bd..ff9949fbb 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class3.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/Class3.html
@@ -70,7 +70,7 @@
function
@@ -97,7 +97,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/index.html
index 15a454b82..dbb7eded6 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/com.package2/4.5.6/Module3/index.html
@@ -101,7 +101,7 @@ command line.
function
@@ -128,7 +128,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/Bird/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/Bird/index.html
index 520be3092..2aa8a8a68 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/Bird/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/Bird/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/allFruit/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/allFruit/index.html
index 9a1898406..2bed6b7c1 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/allFruit/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/allFruit/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/catalog/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/catalog/index.html
index e0f043a51..6e1a75c13 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/catalog/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.5.0/catalog/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/Bird/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/Bird/index.html
index 5be9d0385..83cfef0eb 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/Bird/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/Bird/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/allFruit/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/allFruit/index.html
index 2e499f5a2..a0da4ea4c 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/allFruit/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/allFruit/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/catalog/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/catalog/index.html
index d72c0277f..d439be86d 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/catalog/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.6.0/catalog/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/Bird/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/Bird/index.html
index 4ee512d93..369e12684 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/Bird/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/Bird/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/allFruit/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/allFruit/index.html
index 552e05cac..6228a1bcf 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/allFruit/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/allFruit/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/catalog/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/catalog/index.html
index 4c2d5e4da..a059de6d8 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/catalog/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/birds/0.7.0/catalog/index.html
@@ -99,7 +99,7 @@ command line.
function
@@ -126,7 +126,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/deprecated/1.0.0/deprecated/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/deprecated/1.0.0/deprecated/index.html
index d28044486..6f4272269 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/deprecated/1.0.0/deprecated/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/deprecated/1.0.0/deprecated/index.html
@@ -101,7 +101,7 @@ command line.
function
@@ -128,7 +128,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/fruit/1.1.0/Fruit/index.html b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/fruit/1.1.0/Fruit/index.html
index 50707f712..be04c020a 100644
--- a/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/fruit/1.1.0/Fruit/index.html
+++ b/pkl-doc/src/test/files/DocGeneratorTest/output/run-2/localhost(3a)0/fruit/1.1.0/Fruit/index.html
@@ -86,7 +86,7 @@ command line.
function
@@ -113,7 +113,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/Person.html b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/Person.html
index ee584b3cd..de2d387fb 100644
--- a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/Person.html
+++ b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/Person.html
@@ -72,7 +72,7 @@
function
@@ -99,7 +99,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/index.html b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/index.html
index ac7c7b510..cc123b5f2 100644
--- a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/index.html
+++ b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/1.2.3/minimal/index.html
@@ -91,7 +91,7 @@ command line.
function
@@ -118,7 +118,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/Person.html b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/Person.html
index 5b6fca05e..bb41a8b7a 100644
--- a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/Person.html
+++ b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/Person.html
@@ -72,7 +72,7 @@
function
@@ -99,7 +99,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/index.html b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/index.html
index c15feb973..a9772b0eb 100644
--- a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/index.html
+++ b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/4.5.6/minimal/index.html
@@ -91,7 +91,7 @@ command line.
function
@@ -118,7 +118,7 @@ command line.
function
-
+
diff --git a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/Person.html b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/Person.html
index 5b6fca05e..bb41a8b7a 100644
--- a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/Person.html
+++ b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/Person.html
@@ -72,7 +72,7 @@
function
@@ -99,7 +99,7 @@
function
-
+
diff --git a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/index.html b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/index.html
index c15feb973..a9772b0eb 100644
--- a/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/index.html
+++ b/pkl-doc/src/test/files/SinglePackageTest/output/com.package1/current/minimal/index.html
@@ -91,7 +91,7 @@ command line.
function
@@ -118,7 +118,7 @@ command line.
function
-
+
diff --git a/pkl-formatter/src/main/java/org/pkl/formatter/Builder.java b/pkl-formatter/src/main/java/org/pkl/formatter/Builder.java
index 247ee8a04..683a7908d 100644
--- a/pkl-formatter/src/main/java/org/pkl/formatter/Builder.java
+++ b/pkl-formatter/src/main/java/org/pkl/formatter/Builder.java
@@ -69,6 +69,7 @@ final class Builder {
MODULE_EXPR,
NULL_EXPR,
MODULE_TYPE,
+ THIS_TYPE,
UNKNOWN_TYPE,
NOTHING_TYPE,
SHEBANG,
diff --git a/pkl-parser/src/main/java/org/pkl/parser/BaseParserVisitor.java b/pkl-parser/src/main/java/org/pkl/parser/BaseParserVisitor.java
index 8e4a57e85..2b1fbfd6f 100644
--- a/pkl-parser/src/main/java/org/pkl/parser/BaseParserVisitor.java
+++ b/pkl-parser/src/main/java/org/pkl/parser/BaseParserVisitor.java
@@ -82,6 +82,7 @@ import org.pkl.parser.syntax.Type.NothingType;
import org.pkl.parser.syntax.Type.NullableType;
import org.pkl.parser.syntax.Type.ParenthesizedType;
import org.pkl.parser.syntax.Type.StringConstantType;
+import org.pkl.parser.syntax.Type.ThisType;
import org.pkl.parser.syntax.Type.UnionType;
import org.pkl.parser.syntax.Type.UnknownType;
import org.pkl.parser.syntax.TypeAlias;
@@ -107,6 +108,11 @@ public abstract class BaseParserVisitor
implements ParserVisitor {
return defaultValue();
}
+ @Override
+ public T visitThisType(ThisType type) {
+ return defaultValue();
+ }
+
@Override
public T visitStringConstantType(StringConstantType type) {
return visitChildren(type);
diff --git a/pkl-parser/src/main/java/org/pkl/parser/GenericParserImpl.java b/pkl-parser/src/main/java/org/pkl/parser/GenericParserImpl.java
index 0dd9b9a65..46b6da538 100644
--- a/pkl-parser/src/main/java/org/pkl/parser/GenericParserImpl.java
+++ b/pkl-parser/src/main/java/org/pkl/parser/GenericParserImpl.java
@@ -1161,6 +1161,7 @@ class GenericParserImpl {
case UNKNOWN -> make(NodeType.UNKNOWN_TYPE, next().span);
case NOTHING -> make(NodeType.NOTHING_TYPE, next().span);
case MODULE -> make(NodeType.MODULE_TYPE, next().span);
+ case THIS -> make(NodeType.THIS_TYPE, next().span);
case LPAREN -> {
var children = new ArrayList();
children.add(makeTerminal(next()));
diff --git a/pkl-parser/src/main/java/org/pkl/parser/ParserImpl.java b/pkl-parser/src/main/java/org/pkl/parser/ParserImpl.java
index 390396ab5..47636e76f 100644
--- a/pkl-parser/src/main/java/org/pkl/parser/ParserImpl.java
+++ b/pkl-parser/src/main/java/org/pkl/parser/ParserImpl.java
@@ -1391,6 +1391,7 @@ final class ParserImpl {
case UNKNOWN -> typ = new Type.UnknownType(next().span);
case NOTHING -> typ = new Type.NothingType(next().span);
case MODULE -> typ = new Type.ModuleType(next().span);
+ case THIS -> typ = new Type.ThisType(next().span);
case LPAREN -> {
var tk = next();
var children = new ArrayList();
diff --git a/pkl-parser/src/main/java/org/pkl/parser/ParserVisitor.java b/pkl-parser/src/main/java/org/pkl/parser/ParserVisitor.java
index 4badd687f..d8febb245 100644
--- a/pkl-parser/src/main/java/org/pkl/parser/ParserVisitor.java
+++ b/pkl-parser/src/main/java/org/pkl/parser/ParserVisitor.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
+ * Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -82,6 +82,8 @@ public interface ParserVisitor {
Result visitModuleType(Type.ModuleType type);
+ Result visitThisType(Type.ThisType type);
+
Result visitStringConstantType(Type.StringConstantType type);
Result visitDeclaredType(Type.DeclaredType type);
diff --git a/pkl-parser/src/main/java/org/pkl/parser/syntax/Type.java b/pkl-parser/src/main/java/org/pkl/parser/syntax/Type.java
index 88ab013d8..f77688a58 100644
--- a/pkl-parser/src/main/java/org/pkl/parser/syntax/Type.java
+++ b/pkl-parser/src/main/java/org/pkl/parser/syntax/Type.java
@@ -61,6 +61,17 @@ public abstract sealed class Type extends AbstractNode {
}
}
+ public static final class ThisType extends Type {
+ public ThisType(Span span) {
+ super(span, List.of());
+ }
+
+ @Override
+ public T accept(ParserVisitor visitor) {
+ return visitor.visitThisType(this);
+ }
+ }
+
public static final class StringConstantType extends Type {
public StringConstantType(StringConstant str, Span span) {
super(span, List.of(str));
diff --git a/pkl-parser/src/main/java/org/pkl/parser/syntax/generic/NodeType.java b/pkl-parser/src/main/java/org/pkl/parser/syntax/generic/NodeType.java
index 34d4d1bff..793e5d261 100644
--- a/pkl-parser/src/main/java/org/pkl/parser/syntax/generic/NodeType.java
+++ b/pkl-parser/src/main/java/org/pkl/parser/syntax/generic/NodeType.java
@@ -135,6 +135,7 @@ public enum NodeType {
UNKNOWN_TYPE(NodeKind.TYPE),
NOTHING_TYPE(NodeKind.TYPE),
MODULE_TYPE(NodeKind.TYPE),
+ THIS_TYPE(NodeKind.TYPE),
UNION_TYPE(NodeKind.TYPE),
FUNCTION_TYPE(NodeKind.TYPE),
FUNCTION_TYPE_PARAMETERS,
diff --git a/pkl-parser/src/test/kotlin/org/pkl/parser/SexpRenderer.kt b/pkl-parser/src/test/kotlin/org/pkl/parser/SexpRenderer.kt
index b7b7419bc..076971424 100644
--- a/pkl-parser/src/test/kotlin/org/pkl/parser/SexpRenderer.kt
+++ b/pkl-parser/src/test/kotlin/org/pkl/parser/SexpRenderer.kt
@@ -773,6 +773,10 @@ class SexpRenderer {
buf.append(tab)
buf.append("(moduleType)")
}
+ is ThisType -> {
+ buf.append(tab)
+ buf.append("(thisType)")
+ }
is StringConstantType -> renderStringConstantType(type)
is DeclaredType -> renderDeclaredType(type)
is ParenthesizedType -> renderParenthesizedType(type)
diff --git a/stdlib/base.pkl b/stdlib/base.pkl
index 231ad5d26..be279b69e 100644
--- a/stdlib/base.pkl
+++ b/stdlib/base.pkl
@@ -46,7 +46,7 @@ import "pkl:yaml"
/// ```
abstract external class Any {
/// Returns the class of [this].
- external function getClass(): Class
+ external function getClass(): Class
/// Returns a string representation of [this].
///
@@ -57,7 +57,7 @@ abstract external class Any {
///
/// This method is the complement of the `??` operator and the equivalent of an `Option` type's
/// `map` and `flatMap` methods.
- external function ifNonNull(transform: (NonNull) -> Result): Result?
+ external function ifNonNull(transform: (this) -> Result): Result?
}
/// The type of [null] and null values created with [Null()].
diff --git a/stdlib/ref.pkl b/stdlib/ref.pkl
index 6b0ff66e2..c7f9d0f3c 100644
--- a/stdlib/ref.pkl
+++ b/stdlib/ref.pkl
@@ -210,7 +210,7 @@ external class Reference {
abstract class Domain {
/// Determines how [Reference] instances are transformed to strings by [Reference.toString()] and
/// string interpolation.
- abstract function renderReference(reference: Reference): String
+ abstract function renderReference(reference: Reference): String
}
/// A property or subscript access as part of a [Reference]'s path.
diff --git a/stdlib/reflect.pkl b/stdlib/reflect.pkl
index 6ce546ee1..675c18650 100644
--- a/stdlib/reflect.pkl
+++ b/stdlib/reflect.pkl
@@ -107,6 +107,9 @@ const bytesType: DeclaredType = DeclaredType(Class(Bytes))
/// A mirror for the `module` type.
external const moduleType: ModuleType
+/// A mirror for the `this` type.
+external const thisType: ThisType
+
/// A mirror for the `unknown` type.
external const unknownType: UnknownType
@@ -431,6 +434,11 @@ external class FunctionType extends Type {
/// [moduleType] is an instance of this class.
class ModuleType extends Type
+/// The `this` type.
+///
+/// [thisType] is an instance of this class.
+class ThisType extends Type
+
/// The `unknown` type.
///
/// [unknownType] is an instance of this class.
Returns the class of
this.