Migrate android providers to use BuiltinProvider instead of NativeProvider
RELNOTES: None.
PiperOrigin-RevId: 200096226
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java b/src/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java
index bb12ae3..b880c97 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java
@@ -17,6 +17,7 @@
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.NativeProvider.NativeKey;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
+import com.google.devtools.build.lib.syntax.EvalException;
import javax.annotation.Nullable;
/**
@@ -88,4 +89,13 @@
public void repr(SkylarkPrinter printer) {
printer.append("<function " + getPrintableName() + ">");
}
+
+ /**
+ * Convenience method for subclasses of this class to throw a consistent error when
+ * a provider is unable to be constructed from skylark.
+ */
+ protected T throwUnsupportedConstructorException(Location loc) throws EvalException {
+ throw new EvalException(
+ loc, String.format("'%s' cannot be constructed from Skylark", getPrintableName()));
+ }
}