mirror of
https://github.com/apple/pkl.git
synced 2026-05-20 13:56:56 +02:00
Address warning diagnostics (#1395)
This addressess various warning diagnostics throughout the codebase.
This commit is contained in:
+1
-3
@@ -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.
|
||||
@@ -14,8 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
// https://youtrack.jetbrains.com/issue/KTIJ-19369
|
||||
@file:Suppress("DSL_SCOPE_VIOLATION")
|
||||
|
||||
import org.jetbrains.gradle.ext.ActionDelegationConfig
|
||||
import org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
|
||||
import org.jetbrains.gradle.ext.ProjectSettings
|
||||
|
||||
@@ -4,7 +4,7 @@ import org.pkl.config.java.JavaType;
|
||||
import org.pkl.core.ModuleSource;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@SuppressWarnings({"unused", "NewClassNamingConvention"})
|
||||
// the pkl-jvm-examples repo has a similar example
|
||||
public class JavaConfigExample {
|
||||
@Test
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.pkl.core.PObject;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
// the pkl-jvm-examples repo has a similar example
|
||||
@SuppressWarnings({"unchecked", "unused", "ConstantConditions"})
|
||||
@SuppressWarnings({"unchecked", "unused", "ConstantConditions", "NewClassNamingConvention"})
|
||||
public class CoreEvaluatorExample {
|
||||
@Test
|
||||
public void usage() {
|
||||
|
||||
@@ -9,12 +9,18 @@ googleJavaFormat = "1.25.2"
|
||||
# must not use `+` because used in download URL
|
||||
# 23.1.x requires JDK 20+
|
||||
graalVm = "25.0.0"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
graalVmJdkVersion = "25.0.0"
|
||||
# slightly hacky but convenient place so we remember to update the checksum
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
graalVmSha256-macos-x64 = "04278cf867d040e29dc71dd7727793f0ea67eb72adce8a35d04b87b57906778d"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
graalVmSha256-macos-aarch64 = "c446d5aaeda98660a4c14049d299e9fba72105a007df89f19d27cf3979d37158"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
graalVmSha256-linux-x64 = "1862f2ce97387a303cae4c512cb21baf36fafd2457c3cbbc10d87db94b89d3dd"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
graalVmSha256-linux-aarch64 = "6c3c8b7617006c5d174d9cf7d357ccfb4bae77a4df1294ee28084fcb6eea8921"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
graalVmSha256-windows-x64 = "33ef1d186b5c1e95465fcc97e637bc26e72d5f2250a8615b9c5d667ed5c17fd0"
|
||||
ideaExtPlugin = "1.1.9"
|
||||
intellijPlugin = "2.10.1"
|
||||
@@ -62,6 +68,7 @@ geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref =
|
||||
graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" }
|
||||
graalSdk = { group = "org.graalvm.sdk", name = "graal-sdk", version.ref = "graalVm" }
|
||||
graalJs = { group = "org.graalvm.js", name = "js", version.ref = "graalVm" }
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
intellij = { group = "com.jetbrains.intellij.idea", name = "ideaIC", version.ref = "intellij" }
|
||||
javaPoet = { group = "com.palantir.javapoet", name = "javapoet", version.ref = "javaPoet" }
|
||||
javaxInject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" }
|
||||
@@ -75,7 +82,6 @@ junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.re
|
||||
junitEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" }
|
||||
junitParams = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
|
||||
junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junitPlatform" }
|
||||
kotlinCompilerEmbeddable = { group = "org.jetbrains.kotlin", name = "kotlin-compiler-embeddable", version.ref = "kotlin" }
|
||||
kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
|
||||
kotlinPoet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlinPoet" }
|
||||
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
|
||||
@@ -84,8 +90,10 @@ kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", ve
|
||||
kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" }
|
||||
kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
||||
kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
log4j12Api = { group = "org.apache.logging.log4j", name = "log4j-1.2-api", version.ref = "log4j" }
|
||||
msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" }
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
nuValidator = { group = "nu.validator", name = "validator", version.ref = "nuValidator" }
|
||||
# to be replaced with https://github.com/usethesource/capsule or https://github.com/lacuna/bifurcan
|
||||
paguro = { group = "org.organicdesign", name = "Paguro", version.ref = "paguro" }
|
||||
|
||||
@@ -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.
|
||||
@@ -13,6 +13,8 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
@file:Suppress("unused")
|
||||
|
||||
package org.pkl.codegen.java
|
||||
|
||||
import com.palantir.javapoet.*
|
||||
|
||||
@@ -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.
|
||||
@@ -595,10 +595,7 @@ class JavaCodeGeneratorTest {
|
||||
assertAll(
|
||||
"toString() returns Pkl name",
|
||||
javaClass.enumConstants.zip(cases) { enumConstant, (pklName, _) ->
|
||||
{
|
||||
assertThat(enumConstant.toString()).isEqualTo(pklName)
|
||||
Unit
|
||||
}
|
||||
{ assertThat(enumConstant.toString()).isEqualTo(pklName) }
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -2264,7 +2261,7 @@ class JavaCodeGeneratorTest {
|
||||
}
|
||||
|
||||
private fun Map<String, String>.validateContents(
|
||||
vararg assertions: kotlin.Pair<String, List<String>>
|
||||
@Suppress("RemoveRedundantQualifierName") vararg assertions: kotlin.Pair<String, List<String>>
|
||||
) {
|
||||
val files = toMutableMap()
|
||||
|
||||
@@ -2289,7 +2286,7 @@ class JavaCodeGeneratorTest {
|
||||
}
|
||||
|
||||
private fun JavaCodeGeneratorOptions.generateFiles(
|
||||
vararg pklModules: kotlin.Pair<String, String>
|
||||
@Suppress("RemoveRedundantQualifierName") vararg pklModules: kotlin.Pair<String, String>
|
||||
): Map<String, String> =
|
||||
generateFiles(*pklModules.map { (name, text) -> PklModule(name, text) }.toTypedArray())
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -13,6 +13,8 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
@file:Suppress("unused")
|
||||
|
||||
package org.pkl.codegen.kotlin
|
||||
|
||||
import com.squareup.kotlinpoet.*
|
||||
@@ -66,6 +68,7 @@ class KotlinCodeGenerator(
|
||||
private val STRING = String::class.asClassName()
|
||||
private val ANY_NULL = ANY.copy(nullable = true)
|
||||
private val NOTHING = Nothing::class.asClassName()
|
||||
@Suppress("RemoveRedundantQualifierName")
|
||||
private val KOTLIN_PAIR = kotlin.Pair::class.asClassName()
|
||||
private val COLLECTION = Collection::class.asClassName()
|
||||
private val LIST = List::class.asClassName()
|
||||
|
||||
+3
-3
@@ -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.
|
||||
@@ -2054,7 +2054,7 @@ class KotlinCodeGeneratorTest {
|
||||
}
|
||||
|
||||
private fun Map<String, String>.validateContents(
|
||||
vararg assertions: kotlin.Pair<String, List<String>>
|
||||
@Suppress("RemoveRedundantQualifierName") vararg assertions: kotlin.Pair<String, List<String>>
|
||||
) {
|
||||
val files = toMutableMap()
|
||||
|
||||
@@ -2079,7 +2079,7 @@ class KotlinCodeGeneratorTest {
|
||||
}
|
||||
|
||||
private fun KotlinCodeGeneratorOptions.generateFiles(
|
||||
vararg pklModules: kotlin.Pair<String, String>
|
||||
@Suppress("RemoveRedundantQualifierName") vararg pklModules: kotlin.Pair<String, String>
|
||||
): Map<String, String> =
|
||||
generateFiles(*pklModules.map { (name, text) -> PklModule(name, text) }.toTypedArray())
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -23,11 +23,11 @@ import org.pkl.core.SecurityManagers
|
||||
|
||||
class CliCommandTest {
|
||||
|
||||
class CliTest(private val options: CliBaseOptions) : CliCommand(options) {
|
||||
class CliTest(options: CliBaseOptions) : CliCommand(options) {
|
||||
override fun doRun() = Unit
|
||||
|
||||
val _allowedResources = allowedResources
|
||||
val _allowedModules = allowedModules
|
||||
val myAllowedResources = allowedResources
|
||||
val myAllowedModules = allowedModules
|
||||
}
|
||||
|
||||
private val cmd =
|
||||
@@ -57,12 +57,12 @@ class CliCommandTest {
|
||||
)
|
||||
val opts = cmd.baseOptions.baseOptions(emptyList(), null, true)
|
||||
val cliTest = CliTest(opts)
|
||||
assertThat(cliTest._allowedModules.map { it.pattern() })
|
||||
assertThat(cliTest.myAllowedModules.map { it.pattern() })
|
||||
.isEqualTo(
|
||||
SecurityManagers.defaultAllowedModules.map { it.pattern() } +
|
||||
listOf("\\Qscheme3:\\E", "\\Qscheme4:\\E", "\\Qscheme+ext:\\E")
|
||||
)
|
||||
assertThat(cliTest._allowedResources.map { it.pattern() })
|
||||
assertThat(cliTest.myAllowedResources.map { it.pattern() })
|
||||
.isEqualTo(
|
||||
SecurityManagers.defaultAllowedResources.map { it.pattern() } +
|
||||
listOf("\\Qscheme1:\\E", "\\Qscheme2:\\E", "\\Qscheme+ext:\\E")
|
||||
|
||||
@@ -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.
|
||||
@@ -89,6 +89,7 @@ public class JavaTypeTest {
|
||||
assertThat(javaType.getType()).isEqualTo(Types.mapOf(String.class, Types.listOf(URI.class)));
|
||||
}
|
||||
|
||||
@SuppressWarnings({"EqualsWithItself", "AssertBetweenInconvertibleTypes"})
|
||||
@Test
|
||||
public void sameTypesConstructedInDifferentWaysAreEqual() {
|
||||
var type1 = JavaType.mapOf(JavaType.of(String.class), JavaType.listOf(URI.class));
|
||||
|
||||
@@ -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.
|
||||
@@ -28,46 +28,51 @@ import org.pkl.core.DurationUnit;
|
||||
public class ConversionsTest {
|
||||
@Test
|
||||
public void pStringToFile() {
|
||||
var file = Conversions.pStringToFile.converter.convert("relative/path", null);
|
||||
var file =
|
||||
Conversions.pStringToFile.converter.convert("relative/path", ValueMapper.preconfigured());
|
||||
assertThat(file).isEqualTo(new File("relative/path"));
|
||||
|
||||
var file2 = Conversions.pStringToFile.converter.convert("/absolute/path", null);
|
||||
var file2 =
|
||||
Conversions.pStringToFile.converter.convert("/absolute/path", ValueMapper.preconfigured());
|
||||
assertThat(file2).isEqualTo(new File("/absolute/path"));
|
||||
|
||||
var file3 = Conversions.pStringToFile.converter.convert("", null);
|
||||
var file3 = Conversions.pStringToFile.converter.convert("", ValueMapper.preconfigured());
|
||||
assertThat(file3).isEqualTo(new File(""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pStringToPath() {
|
||||
var path = Conversions.pStringToPath.converter.convert("relative/path", null);
|
||||
var path =
|
||||
Conversions.pStringToPath.converter.convert("relative/path", ValueMapper.preconfigured());
|
||||
assertThat(path).isEqualTo(Path.of("relative/path"));
|
||||
|
||||
var path2 = Conversions.pStringToPath.converter.convert("/absolute/path", null);
|
||||
var path2 =
|
||||
Conversions.pStringToPath.converter.convert("/absolute/path", ValueMapper.preconfigured());
|
||||
assertThat(path2).isEqualTo(Path.of("/absolute/path"));
|
||||
|
||||
var path3 = Conversions.pStringToPath.converter.convert("", null);
|
||||
var path3 = Conversions.pStringToPath.converter.convert("", ValueMapper.preconfigured());
|
||||
assertThat(path3).isEqualTo(Path.of(""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pStringToPattern() {
|
||||
var str = "(?i)\\w*";
|
||||
var pattern = Conversions.pStringToPattern.converter.convert(str, null);
|
||||
var pattern = Conversions.pStringToPattern.converter.convert(str, ValueMapper.preconfigured());
|
||||
assertThat(pattern.pattern()).isEqualTo(str);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pRegexToString() {
|
||||
var regex = Pattern.compile("(?i)\\w*");
|
||||
var str = Conversions.pRegexToString.converter.convert(regex, null);
|
||||
var str = Conversions.pRegexToString.converter.convert(regex, ValueMapper.preconfigured());
|
||||
assertThat(str).isEqualTo("(?i)\\w*");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pDurationToDuration() {
|
||||
var pDuration = new Duration(100, DurationUnit.MINUTES);
|
||||
var duration = Conversions.pDurationToDuration.converter.convert(pDuration, null);
|
||||
var duration =
|
||||
Conversions.pDurationToDuration.converter.convert(pDuration, ValueMapper.preconfigured());
|
||||
assertThat(duration).isEqualTo(java.time.Duration.of(100, ChronoUnit.MINUTES));
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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.
|
||||
@@ -31,7 +31,7 @@ public class PModuleToDataObjectTest {
|
||||
|
||||
private static final PModule module =
|
||||
evaluator.evaluate(modulePath("org/pkl/config/java/mapper/PModuleToDataObjectTest.pkl"));
|
||||
PObjectToDataObjectTest.Person pigeon =
|
||||
private final PObjectToDataObjectTest.Person pigeon =
|
||||
new PObjectToDataObjectTest.Person(
|
||||
"pigeon",
|
||||
40,
|
||||
|
||||
@@ -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.
|
||||
@@ -24,6 +24,7 @@ import org.pkl.core.PNull;
|
||||
public class PNullToAnyTest {
|
||||
private static final ValueMapper mapper = ValueMapperBuilder.preconfigured().build();
|
||||
|
||||
@SuppressWarnings("DataFlowIssue")
|
||||
@Test
|
||||
public void test() {
|
||||
// due to Conversions.identities
|
||||
|
||||
@@ -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.
|
||||
@@ -105,7 +105,8 @@ final class JsonRenderer implements ValueRenderer {
|
||||
@Override
|
||||
public void visitBytes(byte[] value) {
|
||||
throw new RendererException(
|
||||
String.format("Values of type `Bytes` cannot be rendered as JSON. Value: %s", value));
|
||||
String.format(
|
||||
"Values of type `Bytes` cannot be rendered as JSON. Value: %s", (Object) value));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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.
|
||||
@@ -110,7 +110,8 @@ final class PropertiesRenderer implements ValueRenderer {
|
||||
public String convertBytes(byte[] value) {
|
||||
throw new RendererException(
|
||||
String.format(
|
||||
"Values of type `Bytes` cannot be rendered as Properties. Value: %s", value));
|
||||
"Values of type `Bytes` cannot be rendered as Properties. Value: %s",
|
||||
(Object) value));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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.
|
||||
@@ -2449,8 +2449,7 @@ public class AstBuilder extends AbstractAstBuilder<Object> {
|
||||
if (dataSizeUnit != null) {
|
||||
//noinspection ConstantConditions
|
||||
return new ConstantValueNode(
|
||||
sourceSection,
|
||||
new VmDataSize(((IntLiteralNode) receiver).executeInt(null), dataSizeUnit));
|
||||
sourceSection, new VmDataSize(intLiteralNode.executeInt(null), dataSizeUnit));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2465,8 +2464,7 @@ public class AstBuilder extends AbstractAstBuilder<Object> {
|
||||
if (dataSizeUnit != null) {
|
||||
//noinspection ConstantConditions
|
||||
return new ConstantValueNode(
|
||||
sourceSection,
|
||||
new VmDataSize(((FloatLiteralNode) receiver).executeFloat(null), dataSizeUnit));
|
||||
sourceSection, new VmDataSize(floatLiteralNode.executeFloat(null), dataSizeUnit));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -100,6 +100,7 @@ public abstract class NotEqualNode extends ExpressionNode {
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("JavaExistingMethodCanBeUsed")
|
||||
protected static boolean isIncompatibleTypes(Object left, Object right) {
|
||||
var leftClass = left.getClass();
|
||||
var rightClass = right.getClass();
|
||||
|
||||
+1
-2
@@ -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.
|
||||
@@ -67,7 +67,6 @@ public abstract class SpecializedObjectLiteralNode extends ObjectLiteralNode {
|
||||
|
||||
// only runs once per VmClass (which often means once per PropertiesLiteralNode)
|
||||
// unless an XYZUncached specialization is active
|
||||
@SuppressWarnings("ExtractMethodRecommender")
|
||||
@TruffleBoundary
|
||||
@Idempotent
|
||||
protected boolean checkIsValidTypedAmendment(Object parent) {
|
||||
|
||||
@@ -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.
|
||||
@@ -62,7 +62,6 @@ import org.pkl.core.util.ErrorMessages;
|
||||
import org.pkl.core.util.GlobResolver;
|
||||
import org.pkl.core.util.GlobResolver.InvalidGlobPatternException;
|
||||
import org.pkl.core.util.IoUtils;
|
||||
import org.pkl.core.util.Nullable;
|
||||
|
||||
/**
|
||||
* Given a list of project directories, prepares artifacts to be published as a package.
|
||||
@@ -441,7 +440,7 @@ public final class ProjectPackager {
|
||||
}
|
||||
}
|
||||
|
||||
private @Nullable List<ImportsAndReadsParser.Entry> getImportsAndReads(Path pklModulePath) {
|
||||
private List<ImportsAndReadsParser.Entry> getImportsAndReads(Path pklModulePath) {
|
||||
try {
|
||||
var moduleKey = ModuleKeys.file(pklModulePath);
|
||||
var resolvedModuleKey = ResolvedModuleKeys.file(moduleKey, moduleKey.getUri(), pklModulePath);
|
||||
|
||||
@@ -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.
|
||||
@@ -63,7 +63,11 @@ final class MinPklVersionChecker {
|
||||
if (!Identifier.MIN_PKL_VERSION.toString().equals(prop.getIdentifier().getValue()))
|
||||
continue;
|
||||
|
||||
var versionText = prop.getExpr().text(source.toCharArray());
|
||||
var versionTextExpr = prop.getExpr();
|
||||
if (versionTextExpr == null) {
|
||||
return;
|
||||
}
|
||||
var versionText = versionTextExpr.text(source.toCharArray());
|
||||
|
||||
Version version;
|
||||
try {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -37,7 +37,7 @@ public final class VmBytes extends VmValue implements Iterable<Long> {
|
||||
private final byte[] bytes;
|
||||
private @Nullable VmDataSize size;
|
||||
|
||||
public static VmBytes EMPTY = new VmBytes(new byte[0]);
|
||||
public static final VmBytes EMPTY = new VmBytes(new byte[0]);
|
||||
|
||||
@TruffleBoundary
|
||||
public static VmBytes createFromConstantNodes(ExpressionNode[] elements) {
|
||||
|
||||
@@ -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.
|
||||
@@ -100,7 +100,8 @@ public final class VmDynamic extends VmObject {
|
||||
@Override
|
||||
@TruffleBoundary
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) return true;
|
||||
if (this == obj) // noinspection Contract
|
||||
return true;
|
||||
if (!(obj instanceof VmDynamic other)) return false;
|
||||
|
||||
// could use shallow force, but deep force is cached
|
||||
|
||||
@@ -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.
|
||||
@@ -94,9 +94,6 @@ public class VmImportAnalyzer {
|
||||
} catch (IOException err) {
|
||||
throw new VmExceptionBuilder().evalError("ioErrorLoadingModule", moduleKey.getUri()).build();
|
||||
}
|
||||
if (importsAndReads == null) {
|
||||
return Set.of();
|
||||
}
|
||||
var result = new HashSet<ImportEntry>();
|
||||
for (var entry : importsAndReads) {
|
||||
if (!entry.isModule()) {
|
||||
|
||||
@@ -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.
|
||||
@@ -119,7 +119,8 @@ public final class VmMapping extends VmListingOrMapping {
|
||||
@Override
|
||||
@TruffleBoundary
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) return true;
|
||||
if (this == obj) // noinspection Contract
|
||||
return true;
|
||||
if (!(obj instanceof VmMapping other)) return false;
|
||||
|
||||
// could use shallow force, but deep force is cached
|
||||
|
||||
@@ -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.
|
||||
@@ -52,14 +52,14 @@ public final class BaseNodes {
|
||||
|
||||
public abstract static class NaN extends ExternalPropertyNode {
|
||||
@Specialization
|
||||
protected double eval(VmTyped self) {
|
||||
protected double eval(VmTyped ignored) {
|
||||
return Double.NaN;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract static class Infinity extends ExternalPropertyNode {
|
||||
@Specialization
|
||||
protected double eval(VmTyped self) {
|
||||
protected double eval(VmTyped ignored) {
|
||||
return Double.POSITIVE_INFINITY;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -27,7 +27,8 @@ public final class DataSizeNodes {
|
||||
private DataSizeNodes() {}
|
||||
|
||||
@ImportStatic(MathUtils.class)
|
||||
public abstract static class value extends ExternalPropertyNode {
|
||||
@PklName("value")
|
||||
public abstract static class valueProperty extends ExternalPropertyNode {
|
||||
@Specialization(guards = "isMathematicalInteger(self.getValue())")
|
||||
protected long evalInt(VmDataSize self) {
|
||||
return (long) self.getValue();
|
||||
|
||||
@@ -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.
|
||||
@@ -29,7 +29,8 @@ public final class DurationNodes {
|
||||
private DurationNodes() {}
|
||||
|
||||
@ImportStatic(MathUtils.class)
|
||||
public abstract static class value extends ExternalPropertyNode {
|
||||
@PklName("value")
|
||||
public abstract static class valueProperty extends ExternalPropertyNode {
|
||||
@Specialization(guards = "isMathematicalInteger(self.getValue())")
|
||||
protected long evalInt(VmDuration self) {
|
||||
return (long) self.getValue();
|
||||
|
||||
@@ -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.
|
||||
@@ -18,6 +18,7 @@ package org.pkl.core.stdlib.base;
|
||||
import com.oracle.truffle.api.dsl.Specialization;
|
||||
import org.pkl.core.runtime.VmPair;
|
||||
import org.pkl.core.stdlib.ExternalPropertyNode;
|
||||
import org.pkl.core.stdlib.PklName;
|
||||
|
||||
public final class PairNodes {
|
||||
private PairNodes() {}
|
||||
@@ -43,7 +44,8 @@ public final class PairNodes {
|
||||
}
|
||||
}
|
||||
|
||||
public abstract static class value extends ExternalPropertyNode {
|
||||
@PklName("value")
|
||||
public abstract static class valueProperty extends ExternalPropertyNode {
|
||||
@Specialization
|
||||
protected Object eval(VmPair self) {
|
||||
return self.getSecond();
|
||||
|
||||
@@ -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.
|
||||
@@ -20,7 +20,6 @@ import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
import org.graalvm.collections.EconomicMap;
|
||||
import org.pkl.core.TestResults;
|
||||
import org.pkl.core.TestResults.Error;
|
||||
@@ -57,9 +56,8 @@ public final class JUnitReport implements TestReport {
|
||||
|
||||
@Override
|
||||
public void summarize(List<TestResults> allTestResults, Writer writer) throws IOException {
|
||||
var totalTests = allTestResults.stream().collect(Collectors.summingLong(r -> r.totalTests()));
|
||||
var totalFailures =
|
||||
allTestResults.stream().collect(Collectors.summingLong(r -> r.totalFailures()));
|
||||
var totalTests = allTestResults.stream().mapToLong(TestResults::totalTests).sum();
|
||||
var totalFailures = allTestResults.stream().mapToLong(TestResults::totalFailures).sum();
|
||||
|
||||
assert aggregateSuiteName != null;
|
||||
|
||||
@@ -69,12 +67,11 @@ public final class JUnitReport implements TestReport {
|
||||
"tests", totalTests,
|
||||
"failures", totalFailures);
|
||||
|
||||
var tests =
|
||||
allTestResults.stream()
|
||||
.map(r -> buildSuite(r))
|
||||
.collect(Collectors.toCollection(ArrayList::new));
|
||||
|
||||
var suite = buildXmlElement("testsuites", attrs, tests.toArray(new VmDynamic[0]));
|
||||
var suite =
|
||||
buildXmlElement(
|
||||
"testsuites",
|
||||
attrs,
|
||||
allTestResults.stream().map(this::buildSuite).toArray(VmDynamic[]::new));
|
||||
|
||||
writer.append(renderXML(" ", "1.0", suite));
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -362,7 +362,7 @@ public final class Json {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object put(String key, Object value) {
|
||||
public @Nullable Object put(String key, Object value) {
|
||||
return delegate.put(key, value);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -17,14 +17,11 @@ package org.pkl.core.parser
|
||||
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.pkl.core.Evaluator
|
||||
import org.pkl.parser.Parser
|
||||
|
||||
// tests type argument and parameter parsing with trailing commas that cannot be tested with
|
||||
// snippets because these constructs are currently only allowed in the stdlib
|
||||
class TrailingCommasTest {
|
||||
private val evaluator = Evaluator.preconfigured()
|
||||
|
||||
@Test
|
||||
fun `class type parameter lists parse correctly`() {
|
||||
val module =
|
||||
|
||||
@@ -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.
|
||||
@@ -27,15 +27,7 @@ internal class ClassPageGenerator(
|
||||
pageScope: ClassScope,
|
||||
isTestMode: Boolean,
|
||||
consoleOut: OutputStream,
|
||||
) :
|
||||
ModuleOrClassPageGenerator<ClassScope>(
|
||||
docsiteInfo,
|
||||
docModule,
|
||||
clazz,
|
||||
pageScope,
|
||||
isTestMode,
|
||||
consoleOut,
|
||||
) {
|
||||
) : ModuleOrClassPageGenerator<ClassScope>(docsiteInfo, clazz, pageScope, isTestMode, consoleOut) {
|
||||
override val html: HTML.() -> Unit = {
|
||||
renderHtmlHead()
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -25,8 +25,3 @@ internal object HtmlConstants {
|
||||
/** The `known-usages` element ID. */
|
||||
const val KNOWN_USAGES: String = "known-usages"
|
||||
}
|
||||
|
||||
internal object CssConstants {
|
||||
/** The `current-version` CSS class. */
|
||||
const val CURRENT_VERSION: String = "current-version"
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -21,7 +21,6 @@ import kotlinx.html.*
|
||||
internal abstract class MainOrPackagePageGenerator<S>(
|
||||
docsiteInfo: DocsiteInfo,
|
||||
pageScope: S,
|
||||
private val siteScope: SiteScope,
|
||||
consoleOut: OutputStream,
|
||||
) : PageGenerator<S>(docsiteInfo, pageScope, consoleOut) where S : PageScope {
|
||||
protected fun UL.renderModuleOrPackage(
|
||||
|
||||
@@ -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.
|
||||
@@ -23,7 +23,7 @@ internal class MainPageGenerator(
|
||||
private val packagesData: List<PackageData>,
|
||||
pageScope: SiteScope,
|
||||
consoleOut: OutputStream,
|
||||
) : MainOrPackagePageGenerator<SiteScope>(docsiteInfo, pageScope, pageScope, consoleOut) {
|
||||
) : MainOrPackagePageGenerator<SiteScope>(docsiteInfo, pageScope, consoleOut) {
|
||||
override val html: HTML.() -> Unit = {
|
||||
renderHtmlHead()
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -16,7 +16,6 @@
|
||||
package org.pkl.doc
|
||||
|
||||
import java.io.OutputStream
|
||||
import java.io.StringWriter
|
||||
import kotlinx.html.*
|
||||
import org.pkl.core.Member
|
||||
import org.pkl.core.PClass
|
||||
@@ -24,11 +23,9 @@ import org.pkl.core.PClass.ClassMember
|
||||
import org.pkl.core.PClass.Method
|
||||
import org.pkl.core.TypeParameter
|
||||
import org.pkl.core.TypeParameter.Variance
|
||||
import org.pkl.core.ValueRenderers
|
||||
|
||||
internal abstract class ModuleOrClassPageGenerator<S>(
|
||||
docsiteInfo: DocsiteInfo,
|
||||
private val docModule: DocModule,
|
||||
protected val clazz: PClass,
|
||||
scope: S,
|
||||
private val isTestMode: Boolean,
|
||||
@@ -141,12 +138,6 @@ internal abstract class ModuleOrClassPageGenerator<S>(
|
||||
}
|
||||
}
|
||||
|
||||
private fun renderExportedValue(value: Any): String {
|
||||
val writer = StringWriter()
|
||||
ValueRenderers.pcf(writer, " ", false, false).renderValue(value)
|
||||
return writer.toString()
|
||||
}
|
||||
|
||||
protected fun HtmlBlockTag.renderMethods() {
|
||||
if (!clazz.hasListedMethod) return
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -28,7 +28,6 @@ internal class ModulePageGenerator(
|
||||
) :
|
||||
ModuleOrClassPageGenerator<ModuleScope>(
|
||||
docsiteInfo,
|
||||
docModule,
|
||||
docModule.schema.moduleClass,
|
||||
pageScope,
|
||||
isTestMode,
|
||||
|
||||
@@ -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.
|
||||
@@ -23,7 +23,7 @@ internal class PackagePageGenerator(
|
||||
private val docPackage: DocPackage,
|
||||
pageScope: PackageScope,
|
||||
consoleOut: OutputStream,
|
||||
) : MainOrPackagePageGenerator<PackageScope>(docsiteInfo, pageScope, pageScope.parent, consoleOut) {
|
||||
) : MainOrPackagePageGenerator<PackageScope>(docsiteInfo, pageScope, consoleOut) {
|
||||
override val html: HTML.() -> Unit = {
|
||||
renderHtmlHead()
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -112,7 +112,7 @@ internal val String.uriEncodedComponent
|
||||
* Follows `encodeURI` from ECMAScript.
|
||||
*/
|
||||
internal val String.uriEncoded
|
||||
get(): String = replace(Regex("([^;/?:@&=+\$,#]+)")) { it.value.uriEncodedComponent }
|
||||
get(): String = replace(Regex("([^;/?:@&=+$,#]+)")) { it.value.uriEncodedComponent }
|
||||
|
||||
fun getModulePath(moduleName: String, packagePrefix: String): String =
|
||||
moduleName.substring(packagePrefix.length).replace('.', '/')
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -32,7 +32,7 @@ class DocGeneratorTest {
|
||||
fun `uses virtual thread executor on JDK 21`() {
|
||||
// On older JDKs, we get a ThreadPoolExecutor.
|
||||
// not sure if there's a better assertion to make here.
|
||||
assertThat(DocGenerator.Companion.executor.javaClass.canonicalName)
|
||||
assertThat(DocGenerator.executor.javaClass.canonicalName)
|
||||
.isEqualTo("java.util.concurrent.ThreadPerTaskExecutor")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -85,17 +85,6 @@ class DocGeneratorTestHelper {
|
||||
|
||||
internal val cacheDir: Path by lazy { tempDir.resolve("cache") }
|
||||
|
||||
internal val sourceModules =
|
||||
listOf(
|
||||
docsiteModule,
|
||||
package1PackageModule,
|
||||
package2PackageModule,
|
||||
URI("package://localhost:0/birds@0.5.0"),
|
||||
URI("package://localhost:0/fruit@1.1.0"),
|
||||
URI("package://localhost:0/unlisted@1.0.0"),
|
||||
URI("package://localhost:0/deprecated@1.0.0"),
|
||||
) + package1InputModules + package2InputModules
|
||||
|
||||
internal val expectedRelativeOutputFiles: List<String> by lazy {
|
||||
expectedOutputFiles.map { path ->
|
||||
IoUtils.toNormalizedPathString(expectedOutputDir.relativize(path)).let { str ->
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2025 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.doc
|
||||
|
||||
import com.google.common.jimfs.Configuration
|
||||
import com.google.common.jimfs.Jimfs
|
||||
import java.net.URI
|
||||
import java.nio.file.FileSystem
|
||||
import java.nio.file.Path
|
||||
import kotlin.io.path.createDirectories
|
||||
import kotlin.io.path.exists
|
||||
import org.pkl.commons.test.FileTestUtils
|
||||
import org.pkl.commons.test.listFilesRecursively
|
||||
import org.pkl.core.util.IoUtils
|
||||
|
||||
class TestUtils {
|
||||
val tempFileSystem: FileSystem by lazy { Jimfs.newFileSystem(Configuration.unix()) }
|
||||
|
||||
val tmpOutputDir by lazy { tempFileSystem.getPath("/work/output").apply { createDirectories() } }
|
||||
|
||||
val projectDir = FileTestUtils.rootProjectDir.resolve("pkl-doc")
|
||||
|
||||
val inputDir: Path by lazy {
|
||||
projectDir.resolve("src/test/files/DocGeneratorTest/input").apply { assert(exists()) }
|
||||
}
|
||||
|
||||
val docsiteModule: URI by lazy {
|
||||
inputDir.resolve("docsite-info.pkl").apply { assert(exists()) }.toUri()
|
||||
}
|
||||
|
||||
internal val package1PackageModule: URI by lazy {
|
||||
inputDir.resolve("com.package1/doc-package-info.pkl").apply { assert(exists()) }.toUri()
|
||||
}
|
||||
|
||||
val package2PackageModule: URI by lazy {
|
||||
inputDir.resolve("com.package2/doc-package-info.pkl").apply { assert(exists()) }.toUri()
|
||||
}
|
||||
|
||||
internal val package1InputModules: List<URI> by lazy {
|
||||
inputDir
|
||||
.resolve("com.package1")
|
||||
.listFilesRecursively()
|
||||
.filter { it.fileName.toString() != "doc-package-info.pkl" }
|
||||
.map { it.toUri() }
|
||||
}
|
||||
|
||||
val package2InputModules: List<URI> by lazy {
|
||||
inputDir
|
||||
.resolve("com.package2")
|
||||
.listFilesRecursively()
|
||||
.filter { it.fileName.toString() != "doc-package-info.pkl" }
|
||||
.map { it.toUri() }
|
||||
}
|
||||
|
||||
val expectedOutputDir: Path by lazy {
|
||||
projectDir.resolve("src/test/files/DocGeneratorTest/output").createDirectories()
|
||||
}
|
||||
|
||||
val expectedOutputFiles: List<Path> by lazy { expectedOutputDir.listFilesRecursively() }
|
||||
|
||||
val actualOutputDir: Path by lazy { tempFileSystem.getPath("/work/DocGeneratorTest") }
|
||||
|
||||
val actualOutputFiles: List<Path> by lazy { actualOutputDir.listFilesRecursively() }
|
||||
|
||||
val expectedRelativeOutputFiles: List<String> by lazy {
|
||||
expectedOutputFiles.map { path ->
|
||||
IoUtils.toNormalizedPathString(expectedOutputDir.relativize(path)).let { str ->
|
||||
// Git will by default clone symlinks as shortcuts on Windows, and shortcuts have a
|
||||
// `.lnk` extension.
|
||||
if (IoUtils.isWindows() && str.endsWith(".lnk")) str.dropLast(4) else str
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val actualRelativeOutputFiles: List<String> by lazy {
|
||||
actualOutputFiles.map { IoUtils.toNormalizedPathString(actualOutputDir.relativize(it)) }
|
||||
}
|
||||
|
||||
val binaryFileExtensions = setOf("woff2", "png", "svg")
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -32,7 +32,9 @@ public class Annotation extends AbstractNode {
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(0);
|
||||
var ret = (Type) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable ObjectBody getBody() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -54,12 +54,16 @@ public final class Class extends AbstractNode {
|
||||
|
||||
public Keyword getClassKeyword() {
|
||||
assert children != null;
|
||||
return (Keyword) children.get(keywordOffset);
|
||||
var ret = (Keyword) children.get(keywordOffset);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Identifier getName() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(keywordOffset + 1);
|
||||
var ret = (Identifier) children.get(keywordOffset + 1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeParameterList getTypeParameterList() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -57,7 +57,9 @@ public class ClassMethod extends AbstractNode {
|
||||
|
||||
public Identifier getName() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(nameOffset);
|
||||
var ret = (Identifier) children.get(nameOffset);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeParameterList getTypeParameterList() {
|
||||
@@ -67,7 +69,9 @@ public class ClassMethod extends AbstractNode {
|
||||
|
||||
public ParameterList getParameterList() {
|
||||
assert children != null;
|
||||
return (ParameterList) children.get(nameOffset + 2);
|
||||
var ret = (ParameterList) children.get(nameOffset + 2);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeAnnotation getTypeAnnotation() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -54,7 +54,9 @@ public final class ClassProperty extends AbstractNode {
|
||||
|
||||
public Identifier getName() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(nameOffset);
|
||||
var ret = (Identifier) children.get(nameOffset);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeAnnotation getTypeAnnotation() {
|
||||
|
||||
@@ -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.
|
||||
@@ -18,7 +18,6 @@ package org.pkl.parser.syntax;
|
||||
import java.util.List;
|
||||
import org.pkl.parser.ParserVisitor;
|
||||
import org.pkl.parser.Span;
|
||||
import org.pkl.parser.util.Nullable;
|
||||
|
||||
public final class DocComment extends AbstractNode {
|
||||
private final List<Span> spans;
|
||||
@@ -38,7 +37,7 @@ public final class DocComment extends AbstractNode {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> @Nullable T accept(ParserVisitor<? extends T> visitor) {
|
||||
public <T> T accept(ParserVisitor<? extends T> visitor) {
|
||||
return visitor.visitDocComment(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -22,6 +22,7 @@ import org.pkl.parser.ParserVisitor;
|
||||
import org.pkl.parser.Span;
|
||||
import org.pkl.parser.util.Nullable;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr(Span span, @Nullable List<? extends @Nullable Node> children) {
|
||||
@@ -200,7 +201,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,7 +219,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,7 +240,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public StringConstant getImportStr() {
|
||||
assert children != null;
|
||||
return (StringConstant) children.get(0);
|
||||
var ret = (StringConstant) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean isGlob() {
|
||||
@@ -258,7 +265,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ReadType getReadType() {
|
||||
@@ -285,7 +294,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Identifier getIdentifier() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(0);
|
||||
var ret = (Identifier) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable ArgumentList getArgumentList() {
|
||||
@@ -314,12 +325,16 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Identifier getIdentifier() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(1);
|
||||
var ret = (Identifier) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean isNullable() {
|
||||
@@ -344,7 +359,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Identifier getIdentifier() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(0);
|
||||
var ret = (Identifier) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable ArgumentList getArgumentList() {
|
||||
@@ -365,7 +382,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getArg() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -381,12 +400,16 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Expr getArg() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(1);
|
||||
var ret = (Expr) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -402,17 +425,23 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getCond() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Expr getThen() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(1);
|
||||
var ret = (Expr) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Expr getEls() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(2);
|
||||
var ret = (Expr) children.get(2);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -428,17 +457,23 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Parameter getParameter() {
|
||||
assert children != null;
|
||||
return (Parameter) children.get(0);
|
||||
var ret = (Parameter) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Expr getBindingExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(1);
|
||||
var ret = (Expr) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(2);
|
||||
var ret = (Expr) children.get(2);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -454,12 +489,16 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public ParameterList getParameterList() {
|
||||
assert children != null;
|
||||
return (ParameterList) children.get(0);
|
||||
var ret = (ParameterList) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(1);
|
||||
var ret = (Expr) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -475,7 +514,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -496,7 +537,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public ObjectBody getBody() {
|
||||
assert children != null;
|
||||
return (ObjectBody) children.get(1);
|
||||
var ret = (ObjectBody) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Span newSpan() {
|
||||
@@ -516,12 +559,16 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ObjectBody getBody() {
|
||||
assert children != null;
|
||||
return (ObjectBody) children.get(1);
|
||||
var ret = (ObjectBody) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -537,7 +584,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -553,7 +602,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -569,7 +620,9 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -588,12 +641,16 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getLeft() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Expr getRight() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(1);
|
||||
var ret = (Expr) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Operator getOp() {
|
||||
@@ -608,12 +665,12 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
BinaryOperatorExpr binaryOp = (BinaryOperatorExpr) o;
|
||||
return Objects.deepEquals(children, binaryOp.children)
|
||||
&& op == binaryOp.op
|
||||
@@ -638,12 +695,16 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(1);
|
||||
var ret = (Type) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -659,12 +720,16 @@ public abstract sealed class Expr extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(1);
|
||||
var ret = (Type) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -36,7 +36,9 @@ public class ExtendsOrAmendsClause extends AbstractNode {
|
||||
|
||||
public StringConstant getUrl() {
|
||||
assert children != null;
|
||||
return (StringConstant) children.get(0);
|
||||
var ret = (StringConstant) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Type getType() {
|
||||
@@ -58,12 +60,12 @@ public class ExtendsOrAmendsClause extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -56,12 +56,12 @@ public final class Identifier extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
Identifier identifier = (Identifier) o;
|
||||
return Objects.equals(value, identifier.value) && Objects.equals(span, identifier.span);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -37,7 +37,9 @@ public final class ImportClause extends AbstractNode {
|
||||
|
||||
public StringConstant getImportStr() {
|
||||
assert children != null;
|
||||
return (StringConstant) children.get(0);
|
||||
var ret = (StringConstant) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean isGlob() {
|
||||
@@ -57,12 +59,12 @@ public final class ImportClause extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -44,12 +44,12 @@ public final class Modifier extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
Modifier modifier = (Modifier) o;
|
||||
return value == modifier.value && Objects.equals(span, modifier.span);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -83,6 +83,8 @@ public final class ModuleDecl extends AbstractNode {
|
||||
if (extendsOrAmends != null) {
|
||||
return start.endWith(extendsOrAmends.span());
|
||||
}
|
||||
return start.endWith(children.get(nameOffset + 1).span());
|
||||
var end = children.get(nameOffset + 1);
|
||||
assert end != null;
|
||||
return start.endWith(end.span());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -22,6 +22,7 @@ import org.pkl.parser.ParserVisitor;
|
||||
import org.pkl.parser.Span;
|
||||
import org.pkl.parser.util.Nullable;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public ObjectMember(Span span, @Nullable List<? extends @Nullable Node> children) {
|
||||
@@ -40,7 +41,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +68,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Identifier getIdentifier() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(identifierOffset);
|
||||
var ret = (Identifier) children.get(identifierOffset);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeAnnotation getTypeAnnotation() {
|
||||
@@ -106,12 +111,16 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Keyword getFunctionKeyword() {
|
||||
assert children != null;
|
||||
return (Keyword) children.get(identifierOffset);
|
||||
var ret = (Keyword) children.get(identifierOffset);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Identifier getIdentifier() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(identifierOffset + 1);
|
||||
var ret = (Identifier) children.get(identifierOffset + 1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeParameterList getTypeParameterList() {
|
||||
@@ -121,7 +130,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public ParameterList getParamList() {
|
||||
assert children != null;
|
||||
return (ParameterList) children.get(identifierOffset + 3);
|
||||
var ret = (ParameterList) children.get(identifierOffset + 3);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeAnnotation getTypeAnnotation() {
|
||||
@@ -131,7 +142,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(identifierOffset + 5);
|
||||
var ret = (Expr) children.get(identifierOffset + 5);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@SuppressWarnings("DuplicatedCode")
|
||||
@@ -147,7 +160,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
Span end;
|
||||
var typeAnnotation = children.get(identifierOffset + 4);
|
||||
if (typeAnnotation == null) {
|
||||
end = children.get(identifierOffset + 3).span();
|
||||
var stop = children.get(identifierOffset + 3);
|
||||
assert stop != null;
|
||||
end = stop.span();
|
||||
} else {
|
||||
end = typeAnnotation.span();
|
||||
}
|
||||
@@ -168,7 +183,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Expr getPred() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable Expr getExpr() {
|
||||
@@ -195,7 +212,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Expr getKey() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable Expr getValue() {
|
||||
@@ -225,7 +244,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean isNullable() {
|
||||
@@ -247,12 +268,12 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
@@ -279,12 +300,16 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Expr getPredicate() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ObjectBody getThenClause() {
|
||||
assert children != null;
|
||||
return (ObjectBody) children.get(1);
|
||||
var ret = (ObjectBody) children.get(1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable ObjectBody getElseClause() {
|
||||
@@ -306,7 +331,9 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Parameter getP1() {
|
||||
assert children != null;
|
||||
return (Parameter) children.get(0);
|
||||
var ret = (Parameter) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable Parameter getP2() {
|
||||
@@ -316,12 +343,16 @@ public abstract sealed class ObjectMember extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(2);
|
||||
var ret = (Expr) children.get(2);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ObjectBody getBody() {
|
||||
assert children != null;
|
||||
return (ObjectBody) children.get(3);
|
||||
var ret = (ObjectBody) children.get(3);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Span forSpan() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -46,7 +46,9 @@ public abstract sealed class Parameter extends AbstractNode {
|
||||
|
||||
public Identifier getIdentifier() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(0);
|
||||
var ret = (Identifier) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeAnnotation getTypeAnnotation() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -45,12 +45,12 @@ public class StringConstant extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -52,12 +52,12 @@ public abstract sealed class StringPart extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
@@ -78,7 +78,9 @@ public abstract sealed class StringPart extends AbstractNode {
|
||||
|
||||
public Expr getExpr() {
|
||||
assert children != null;
|
||||
return (Expr) children.get(0);
|
||||
var ret = (Expr) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -73,7 +73,9 @@ public abstract sealed class Type extends AbstractNode {
|
||||
|
||||
public StringConstant getStr() {
|
||||
assert children != null;
|
||||
return (StringConstant) children.get(0);
|
||||
var ret = (StringConstant) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,7 +91,9 @@ public abstract sealed class Type extends AbstractNode {
|
||||
|
||||
public QualifiedIdentifier getName() {
|
||||
assert children != null;
|
||||
return (QualifiedIdentifier) children.get(0);
|
||||
var ret = (QualifiedIdentifier) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeArgumentList getArgs() {
|
||||
@@ -110,7 +114,9 @@ public abstract sealed class Type extends AbstractNode {
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(0);
|
||||
var ret = (Type) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +132,9 @@ public abstract sealed class Type extends AbstractNode {
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(0);
|
||||
var ret = (Type) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,7 +150,9 @@ public abstract sealed class Type extends AbstractNode {
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(0);
|
||||
var ret = (Type) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -190,12 +200,12 @@ public abstract sealed class Type extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
@@ -227,7 +237,9 @@ public abstract sealed class Type extends AbstractNode {
|
||||
|
||||
public Type getRet() {
|
||||
assert children != null;
|
||||
return (Type) children.get(children.size() - 1);
|
||||
var ret = (Type) children.get(children.size() - 1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -20,6 +20,7 @@ import org.pkl.parser.ParserVisitor;
|
||||
import org.pkl.parser.Span;
|
||||
import org.pkl.parser.util.Nullable;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final class TypeAlias extends AbstractNode {
|
||||
private final int modifiersOffset;
|
||||
private final int nameOffset;
|
||||
@@ -54,12 +55,16 @@ public final class TypeAlias extends AbstractNode {
|
||||
|
||||
public Keyword getTypealiasKeyword() {
|
||||
assert children != null;
|
||||
return (Keyword) children.get(nameOffset);
|
||||
var ret = (Keyword) children.get(nameOffset);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Identifier getName() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(nameOffset + 1);
|
||||
var ret = (Identifier) children.get(nameOffset + 1);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public @Nullable TypeParameterList getTypeParameterList() {
|
||||
@@ -69,7 +74,9 @@ public final class TypeAlias extends AbstractNode {
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(nameOffset + 3);
|
||||
var ret = (Type) children.get(nameOffset + 3);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@SuppressWarnings("DuplicatedCode")
|
||||
@@ -83,7 +90,9 @@ public final class TypeAlias extends AbstractNode {
|
||||
break;
|
||||
}
|
||||
}
|
||||
var end = children.get(nameOffset + 1).span();
|
||||
var endNode = children.get(nameOffset + 1);
|
||||
assert endNode != null;
|
||||
var end = endNode.span();
|
||||
var tparList = children.get(nameOffset + 2);
|
||||
if (tparList != null) {
|
||||
end = tparList.span();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -32,6 +32,8 @@ public class TypeAnnotation extends AbstractNode {
|
||||
|
||||
public Type getType() {
|
||||
assert children != null;
|
||||
return (Type) children.get(0);
|
||||
var ret = (Type) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -40,7 +40,9 @@ public final class TypeParameter extends AbstractNode {
|
||||
|
||||
public Identifier getIdentifier() {
|
||||
assert children != null;
|
||||
return (Identifier) children.get(0);
|
||||
var ret = (Identifier) children.get(0);
|
||||
assert ret != null;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,12 +60,12 @@ public final class TypeParameter extends AbstractNode {
|
||||
@SuppressWarnings("ConstantValue")
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(o)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||
* Copyright © 2025-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.
|
||||
@@ -71,19 +71,6 @@ class GenericSexpRenderer(code: String) {
|
||||
buf.append(')')
|
||||
}
|
||||
|
||||
private fun renderQualifiedAccess(node: Node) {
|
||||
var children = node.children
|
||||
if (children.last().type == NodeType.UNQUALIFIED_ACCESS_EXPR) {
|
||||
children = children.dropLast(1) + collectChildren(children.last())
|
||||
}
|
||||
val toRender = mutableListOf<Node>()
|
||||
for (child in children) {
|
||||
if (child.type in IGNORED_CHILDREN || child.type == NodeType.OPERATOR) continue
|
||||
toRender += child
|
||||
}
|
||||
doRender(name(node), toRender)
|
||||
}
|
||||
|
||||
private fun renderDefaultUnionType(node: Node) {
|
||||
buf.append(tab)
|
||||
buf.append("(defaultUnionType\n")
|
||||
|
||||
@@ -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.
|
||||
@@ -1092,7 +1092,7 @@ class SexpRenderer {
|
||||
}
|
||||
|
||||
companion object {
|
||||
private fun sortModuleEntries(mod: org.pkl.parser.syntax.Module): List<Node> {
|
||||
private fun sortModuleEntries(mod: Module): List<Node> {
|
||||
val res = mutableListOf<Node>()
|
||||
res += mod.classes
|
||||
res += mod.typeAliases
|
||||
|
||||
Reference in New Issue
Block a user