mirror of
https://github.com/apple/pkl.git
synced 2026-05-25 16:19:20 +02:00
Make codegen default to jspecify NonNull annotations (#1607)
With JSpecify now a dependency of pkl-config-java, this moves the non-null annotation to jspecify's. This makes it simpler for users to do nullness checks, as tooling already understands JSpecify nullness annotations.
This commit is contained in:
@@ -198,7 +198,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g
|
|||||||
.--non-null-annotation
|
.--non-null-annotation
|
||||||
[%collapsible]
|
[%collapsible]
|
||||||
====
|
====
|
||||||
Default: `org.pkl.config.java.mapper.NonNull` +
|
Default: `org.jspecify.annotations.NonNull` +
|
||||||
Fully qualified name of the annotation type to use for annotating non-null types. +
|
Fully qualified name of the annotation type to use for annotating non-null types. +
|
||||||
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
||||||
or the generated code may not compile.
|
or the generated code may not compile.
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g
|
|||||||
.nonNullAnnotation: Property<String>
|
.nonNullAnnotation: Property<String>
|
||||||
[%collapsible]
|
[%collapsible]
|
||||||
====
|
====
|
||||||
Default: `"org.pkl.config.java.mapper.NonNull"` +
|
Default: `"org.jspecify.annotations.NonNull"` +
|
||||||
Example: `nonNullAnnotation = "org.project.MyAnnotation"` +
|
Example: `nonNullAnnotation = "org.project.MyAnnotation"` +
|
||||||
Fully qualified name of the annotation type to use for annotating non-null types. +
|
Fully qualified name of the annotation type to use for annotating non-null types. +
|
||||||
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ The following APIs have been removed without replacement.
|
|||||||
|
|
||||||
* `org.pkl.config.java.Config#makeConfig` (pr:https://github.com/apple/pkl/pull/1531[])
|
* `org.pkl.config.java.Config#makeConfig` (pr:https://github.com/apple/pkl/pull/1531[])
|
||||||
|
|
||||||
|
The following APIs have been deprecated for removal.
|
||||||
|
|
||||||
|
* `org.pkl.config.java.mapper.NonNull` (https://github.com/apple/pkl/pull/1607[#1607]).
|
||||||
|
|
||||||
.XXX
|
.XXX
|
||||||
[%collapsible]
|
[%collapsible]
|
||||||
====
|
====
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
@file:Suppress("unused")
|
@file:Suppress("unused", "CanConvertToMultiDollarString")
|
||||||
|
|
||||||
package org.pkl.codegen.java
|
package org.pkl.codegen.java
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ class JavaCodeGenerator(
|
|||||||
val annotation = codegenOptions.nonNullAnnotation
|
val annotation = codegenOptions.nonNullAnnotation
|
||||||
val className =
|
val className =
|
||||||
if (annotation == null) {
|
if (annotation == null) {
|
||||||
ClassName.get("org.pkl.config.java.mapper", "NonNull")
|
ClassName.get("org.jspecify.annotations", "NonNull")
|
||||||
} else {
|
} else {
|
||||||
toClassName(annotation)
|
toClassName(annotation)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import java.lang.Override;
|
|||||||
import java.lang.String;
|
import java.lang.String;
|
||||||
import java.lang.StringBuilder;
|
import java.lang.StringBuilder;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import org.jspecify.annotations.NonNull;
|
||||||
import org.pkl.config.java.mapper.Named;
|
import org.pkl.config.java.mapper.Named;
|
||||||
import org.pkl.config.java.mapper.NonNull;
|
|
||||||
import org.pkl.core.DataSize;
|
import org.pkl.core.DataSize;
|
||||||
import org.pkl.core.Duration;
|
import org.pkl.core.Duration;
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import java.lang.Override;
|
|||||||
import java.lang.String;
|
import java.lang.String;
|
||||||
import java.lang.StringBuilder;
|
import java.lang.StringBuilder;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import org.jspecify.annotations.NonNull;
|
||||||
import org.pkl.config.java.mapper.Named;
|
import org.pkl.config.java.mapper.Named;
|
||||||
import org.pkl.config.java.mapper.NonNull;
|
|
||||||
import org.pkl.core.Duration;
|
import org.pkl.core.Duration;
|
||||||
|
|
||||||
public final class Mod {
|
public final class Mod {
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import java.lang.Override;
|
|||||||
import java.lang.String;
|
import java.lang.String;
|
||||||
import java.lang.StringBuilder;
|
import java.lang.StringBuilder;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import org.jspecify.annotations.NonNull;
|
||||||
import org.pkl.config.java.mapper.Named;
|
import org.pkl.config.java.mapper.Named;
|
||||||
import org.pkl.config.java.mapper.NonNull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* module comment.
|
* module comment.
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import java.util.Map;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
import org.jspecify.annotations.NonNull;
|
||||||
import org.pkl.config.java.mapper.Named;
|
import org.pkl.config.java.mapper.Named;
|
||||||
import org.pkl.config.java.mapper.NonNull;
|
|
||||||
import org.pkl.core.DataSize;
|
import org.pkl.core.DataSize;
|
||||||
import org.pkl.core.DataSizeUnit;
|
import org.pkl.core.DataSizeUnit;
|
||||||
import org.pkl.core.Duration;
|
import org.pkl.core.Duration;
|
||||||
|
|||||||
@@ -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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -21,8 +21,16 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
/** Indicates that a type does not accept {@code null} as a value. */
|
/**
|
||||||
|
* Indicates that a type does not accept {@code null} as a value.
|
||||||
|
*
|
||||||
|
* <p>This annotation is deprecated, and any usage should be replaced with {@link
|
||||||
|
* org.jspecify.annotations.NonNull}.
|
||||||
|
*
|
||||||
|
* @deprecated since 0.32.0
|
||||||
|
*/
|
||||||
@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
|
@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
|
||||||
@Retention(RetentionPolicy.CLASS)
|
@Retention(RetentionPolicy.CLASS)
|
||||||
@Documented
|
@Documented
|
||||||
|
@Deprecated(forRemoval = true)
|
||||||
public @interface NonNull {}
|
public @interface NonNull {}
|
||||||
|
|||||||
Reference in New Issue
Block a user