diff --git a/build-logic/src/main/kotlin/pklAllProjects.gradle.kts b/build-logic/src/main/kotlin/pklAllProjects.gradle.kts index 5f52f5d01..30ed35461 100644 --- a/build-logic/src/main/kotlin/pklAllProjects.gradle.kts +++ b/build-logic/src/main/kotlin/pklAllProjects.gradle.kts @@ -45,6 +45,7 @@ configurations { tasks.withType().configureEach { javaCompiler = buildInfo.javaCompiler options.release = buildInfo.jvmTarget + options.compilerArgs.add("-Xlint:unchecked") } plugins.withType(IdeaPlugin::class).configureEach { diff --git a/build-logic/src/main/kotlin/pklFatJar.gradle.kts b/build-logic/src/main/kotlin/pklFatJar.gradle.kts index af209c4b6..971293f51 100644 --- a/build-logic/src/main/kotlin/pklFatJar.gradle.kts +++ b/build-logic/src/main/kotlin/pklFatJar.gradle.kts @@ -84,7 +84,7 @@ for ((key, value) in relocations) { } } -val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/", "org/jspecify") +val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/", "org/jspecify/") tasks.shadowJar { inputs.property("relocations", relocations) diff --git a/pkl-core/src/main/java/org/pkl/core/EvaluatorImpl.java b/pkl-core/src/main/java/org/pkl/core/EvaluatorImpl.java index 7113d4c6f..0b3c20637 100644 --- a/pkl-core/src/main/java/org/pkl/core/EvaluatorImpl.java +++ b/pkl-core/src/main/java/org/pkl/core/EvaluatorImpl.java @@ -312,6 +312,7 @@ public final class EvaluatorImpl implements Evaluator { } @Override + @SuppressWarnings("unchecked") public T evaluateOutputValueAs(ModuleSource moduleSource, PClassInfo classInfo) { return doEvaluate( moduleSource, @@ -322,10 +323,8 @@ public final class EvaluatorImpl implements Evaluator { if (valueClassInfo.equals(classInfo)) { if (value instanceof VmValue vmValue) { vmValue.force(false); - //noinspection unchecked return (T) vmValue.export(); } - //noinspection unchecked return (T) value; } throw moduleOutputValueTypeMismatch(module, classInfo, value, output); 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 7f1e23f29..0a4eb8065 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 @@ -539,6 +539,7 @@ public final class SymbolTable { @Nullable T apply(LexicalScope scope, int levelUp); } + @SuppressWarnings("unchecked") private @Nullable R resolveLexical(ResolutionFunction fun) { var levelsUp = 0; var shouldSkip = false; @@ -560,7 +561,6 @@ public final class SymbolTable { // are one level higher than the body itself. var result = fun.apply(objectScope, levelsUp); if (result instanceof Parameter parameter) { - //noinspection unchecked return (R) new Parameter(parameter.slot(), parameter.levelsUp() - 1); } levelsUp++; @@ -578,7 +578,6 @@ public final class SymbolTable { var result = fun.apply(lex, levelsUp); if (result != null) { if (result instanceof ForGeneratorVariableOrLetBinding p && skippedObjectScope) { - //noinspection unchecked return (R) new ForGeneratorVariableOrLetBinding(p.slot(), p.levelsUp(), true); } return result; diff --git a/pkl-core/src/main/java/org/pkl/core/project/Project.java b/pkl-core/src/main/java/org/pkl/core/project/Project.java index 0c66dd39f..4757fb462 100644 --- a/pkl-core/src/main/java/org/pkl/core/project/Project.java +++ b/pkl-core/src/main/java/org/pkl/core/project/Project.java @@ -248,13 +248,17 @@ public final class Project { .addResourceReader(ResourceReaders.pkg()); } + @SuppressWarnings("unchecked") + private static Map getDependencies(PObject module) { + return (Map) module.getProperty("dependencies"); + } + private static DeclaredDependencies parseDependencies( PObject module, URI projectFileUri, @Nullable PackageUri packageUri) throws URISyntaxException { var remoteDependencies = new HashMap(); var localDependencies = new HashMap(); - //noinspection unchecked - var dependencies = (Map) module.getProperty("dependencies"); + var dependencies = getDependencies(module); for (var entry : dependencies.entrySet()) { var value = entry.getValue(); if (value.getClassInfo().equals(PClassInfo.Project)) { @@ -332,8 +336,7 @@ public final class Project { private static Map parseLocalProjectDependencies(PObject module) throws URISyntaxException { - //noinspection unchecked - var dependencies = (Map) module.getProperty("dependencies"); + var dependencies = getDependencies(module); var result = new HashMap(); for (var entry : dependencies.entrySet()) { var value = entry.getValue(); 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 683a7908d..970490e7e 100644 --- a/pkl-formatter/src/main/java/org/pkl/formatter/Builder.java +++ b/pkl-formatter/src/main/java/org/pkl/formatter/Builder.java @@ -356,6 +356,7 @@ final class Builder { * Split a function call node to extract its identifier into the leading group. For example, * {@code foo.bar(5)} becomes: leading gets {@code foo.bar}, rest gets {@code (5)}. */ + @SuppressWarnings("unchecked") private List[] splitFunctionCallNode(List nodes) { assert !nodes.isEmpty(); var lastNode = nodes.get(nodes.size() - 1); @@ -369,7 +370,6 @@ final class Builder { var leading = new ArrayList<>(nodes.subList(0, nodes.size() - 1)); leading.addAll(lastNode.children.subList(0, argListIdx)); var trailing = lastNode.children.subList(argListIdx, lastNode.children.size()); - //noinspection unchecked return new List[] {leading, trailing}; }