diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java | 10 |
1 files changed, 10 insertions, 0 deletions
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 bb12ae37e6..b880c97fa8 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.concurrent.ThreadSafety.Immutable; 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 abstract class BuiltinProvider<T extends Info> implements Provider { 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())); + } } |