Pass SkylarkSemantics through Skyframe instead of the options class
Also remove the use of the @UsesOnlyCoreTypes annotation on SkylarkSemanticsOptions. It was only there to help mark that the options class was safe to put in Skyframe.
RELNOTES: None
PiperOrigin-RevId: 171248504
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
index 2273f7e..4041a5b 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
@@ -29,6 +29,15 @@
@AutoValue
public abstract class SkylarkSemantics {
+ /**
+ * The AutoValue-generated concrete class implementing this one.
+ *
+ * <p>AutoValue implementation classes are usually package-private. We expose it here for the
+ * benefit of code that relies on reflection.
+ */
+ public static final Class<? extends SkylarkSemantics> IMPL_CLASS =
+ AutoValue_SkylarkSemantics.class;
+
// <== Add new options here in alphabetic order ==>
public abstract boolean incompatibleBzlDisallowLoadAfterStatement();
public abstract boolean incompatibleCheckedArithmetic();