diff options
| -rw-r--r-- | src/main/java/org/shedlang/compiler/cli/ShedCli.java | 3 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/cli/ShedCli.java b/src/main/java/org/shedlang/compiler/cli/ShedCli.java index 7f6d88ad..9ae3fb75 100644 --- a/src/main/java/org/shedlang/compiler/cli/ShedCli.java +++ b/src/main/java/org/shedlang/compiler/cli/ShedCli.java @@ -44,8 +44,7 @@ public class ShedCli { // In principle, this should be prevented by the arg parsing. .orElseThrow(() -> new UnsupportedOperationException("Unrecognised backend: " + backendName)) .backendForTarget(target) - // TODO: better error - .orElseThrow(() -> new UnsupportedOperationException("Backend " + backendName + " does not support target " + target.targetName())) + .orElseThrow(() -> new UnsupportedTargetError(backendName, target)) ) .orElseGet(() -> Backends.backendForTarget(target)); var profile = Optional.ofNullable(args.getString("profile")); diff --git a/src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java b/src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java new file mode 100644 index 00000000..265c2cdc --- /dev/null +++ b/src/main/java/org/shedlang/compiler/cli/UnsupportedTargetError.java @@ -0,0 +1,11 @@ +package org.shedlang.compiler.cli; + +import org.shedlang.compiler.backends.ShedTarget; +import org.shedlang.compiler.errors.CompilerError; +import org.shedlang.compiler.sources.Sources; + +public class UnsupportedTargetError extends CompilerError { + public UnsupportedTargetError(String backendName, ShedTarget target) { + super("Backend " + backendName + " does not support target " + target.targetName(), Sources.NULL); + } +} |
