You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2021/07/30 07:30:44 UTC

[groovy] 02/02: add incubating

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch groovy10148
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit ef9944c52eff2cf7421d800d81dd7dc9aa727605
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Jul 30 17:30:20 2021 +1000

    add incubating
---
 src/main/java/groovy/transform/NonSealed.java | 2 ++
 src/main/java/groovy/transform/Sealed.java    | 2 ++
 src/spec/doc/_sealed.adoc                     | 2 +-
 src/spec/doc/_traits.adoc                     | 2 +-
 4 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/main/java/groovy/transform/NonSealed.java b/src/main/java/groovy/transform/NonSealed.java
index 5550558..d8ceae8 100644
--- a/src/main/java/groovy/transform/NonSealed.java
+++ b/src/main/java/groovy/transform/NonSealed.java
@@ -18,6 +18,7 @@
  */
 package groovy.transform;
 
+import org.apache.groovy.lang.annotation.Incubating;
 import org.codehaus.groovy.transform.GroovyASTTransformationClass;
 
 import java.lang.annotation.ElementType;
@@ -33,6 +34,7 @@ import java.lang.annotation.Target;
 @java.lang.annotation.Documented
 @Retention(RetentionPolicy.SOURCE)
 @Target({ElementType.TYPE})
+@Incubating
 @GroovyASTTransformationClass("org.codehaus.groovy.transform.NonSealedASTTransformation")
 public @interface NonSealed {
 }
diff --git a/src/main/java/groovy/transform/Sealed.java b/src/main/java/groovy/transform/Sealed.java
index 1881e2e..e7d7a51 100644
--- a/src/main/java/groovy/transform/Sealed.java
+++ b/src/main/java/groovy/transform/Sealed.java
@@ -18,6 +18,7 @@
  */
 package groovy.transform;
 
+import org.apache.groovy.lang.annotation.Incubating;
 import org.codehaus.groovy.transform.GroovyASTTransformationClass;
 
 import java.lang.annotation.ElementType;
@@ -33,6 +34,7 @@ import java.lang.annotation.Target;
 @java.lang.annotation.Documented
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.TYPE})
+@Incubating
 @GroovyASTTransformationClass("org.codehaus.groovy.transform.SealedASTTransformation")
 public @interface Sealed {
     /**
diff --git a/src/spec/doc/_sealed.adoc b/src/spec/doc/_sealed.adoc
index c3c3776..84d5e38 100644
--- a/src/spec/doc/_sealed.adoc
+++ b/src/spec/doc/_sealed.adoc
@@ -19,7 +19,7 @@
 
 //////////////////////////////////////////
 
-= Sealed hierarchies
+= Sealed hierarchies (incubating)
 
 Sealed classes, interfaces and traits restrict which subclasses can extend/implement them.
 A final class allows no extension. A public non-final class allows extension by anyone.
diff --git a/src/spec/doc/_traits.adoc b/src/spec/doc/_traits.adoc
index fb0b34d..eedbb55 100644
--- a/src/spec/doc/_traits.adoc
+++ b/src/spec/doc/_traits.adoc
@@ -838,7 +838,7 @@ class 'MyDevice' implements trait 'Communicating' but does not extend self type
 In conclusion, self types are a powerful way of declaring constraints on traits without having to declare the contract
 directly in the trait or having to use casts everywhere, maintaining separation of concerns as tight as it should be.
 
-=== Differences with Sealed annotation
+=== Differences with Sealed annotation (incubating)
 
 Both `@Sealed` and `@SelfType` restrict classes which use a trait but in orthogonal ways.
 Consider the following example: