From 291f1463f2cf23689eb56d7a9bd577f18a949309 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 25 Oct 2023 22:03:34 +0100 Subject: Adding missing suffices to error types --- .../compiler/typechecker/EnvironmentBuilder.java | 6 +++--- .../shedlang/compiler/typechecker/TypeChecker.java | 10 +++++----- .../CannotDefineStructOutsideOfNamespace.java | 10 ---------- .../CannotDefineStructOutsideOfNamespaceError.java | 10 ++++++++++ .../CannotDefineSumTypeOutsideOfNamespace.java | 10 ---------- ...CannotDefineSumTypeOutsideOfNamespaceError.java | 10 ++++++++++ .../errors/CannotReturnOutsideOfFunction.java | 10 ---------- .../errors/CannotReturnOutsideOfFunctionError.java | 10 ++++++++++ .../typechecker/errors/DuplicateVariableName.java | 17 ---------------- .../errors/DuplicateVariableNameError.java | 17 ++++++++++++++++ .../errors/TargetTupleHasWrongElementCount.java | 23 ---------------------- .../TargetTupleHasWrongElementCountError.java | 23 ++++++++++++++++++++++ 12 files changed, 78 insertions(+), 78 deletions(-) delete mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespace.java create mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespaceError.java delete mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespace.java create mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespaceError.java delete mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunction.java create mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunctionError.java delete mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableName.java create mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableNameError.java delete mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCount.java create mode 100644 src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCountError.java (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/typechecker/EnvironmentBuilder.java b/src/main/java/org/shedlang/compiler/typechecker/EnvironmentBuilder.java index 8e08855c..85292f8c 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/EnvironmentBuilder.java +++ b/src/main/java/org/shedlang/compiler/typechecker/EnvironmentBuilder.java @@ -3,7 +3,7 @@ package org.shedlang.compiler.typechecker; import org.pcollections.Empty; import org.pcollections.PMap; import org.shedlang.compiler.sources.Source; -import org.shedlang.compiler.typechecker.errors.DuplicateVariableName; +import org.shedlang.compiler.typechecker.errors.DuplicateVariableNameError; import java.util.List; @@ -30,14 +30,14 @@ public class EnvironmentBuilder { public EnvironmentBuilder addUndefined(DeclaredVariable variable) { if (environment.containsKey(variable.name())) { - throw new DuplicateVariableName(variable.name(), variable.source()); + throw new DuplicateVariableNameError(variable.name(), variable.source()); } return new EnvironmentBuilder(environment.plus(variable.name(), Variable.undefined(variable.variableType()))); } public EnvironmentBuilder add(String name, Variable variable, Source source) { if (environment.containsKey(name)) { - throw new DuplicateVariableName(name, source); + throw new DuplicateVariableNameError(name, source); } return new EnvironmentBuilder(environment.plus(name, variable)); } diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index d7ad4627..62216226 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -577,7 +577,7 @@ public class TypeChecker { // This should be syntactically impossible, but since we only have // one context type, we check for this possibility and throw a // reasonable error. - return new CannotReturnOutsideOfFunction(untyped.source()); + return new CannotReturnOutsideOfFunctionError(untyped.source()); }); checkExpressionType(expression, expectedReturnType, context); @@ -654,7 +654,7 @@ public class TypeChecker { var seenParamNames = new HashSet(); for (var untypedParamNode : untyped.params().named()) { if (!seenParamNames.add(untypedParamNode.name())) { - throw new DuplicateVariableName( + throw new DuplicateVariableNameError( untypedParamNode.name(), untypedParamNode.source() ); @@ -950,7 +950,7 @@ public class TypeChecker { @Override public TypeCheckerContext declareTypes(TypeCheckerContext context) { var namespaceName = context.namespaceName() - .orElseThrow(() -> new CannotDefineStructOutsideOfNamespace(untyped.source())); + .orElseThrow(() -> new CannotDefineStructOutsideOfNamespaceError(untyped.source())); var type = new StructType(namespaceName, untyped.name()); @@ -1005,7 +1005,7 @@ public class TypeChecker { @Override public TypeCheckerContext declareTypes(TypeCheckerContext context) { var namespaceName = context.namespaceName() - .orElseThrow(() -> new CannotDefineSumTypeOutsideOfNamespace(untyped.source())); + .orElseThrow(() -> new CannotDefineSumTypeOutsideOfNamespaceError(untyped.source())); var type = new SumType(namespaceName, untyped.name()); @@ -1199,7 +1199,7 @@ public class TypeChecker { } if (targetTuple.elements().size() != tupleType.elements().size()) { - throw new TargetTupleHasWrongElementCount( + throw new TargetTupleHasWrongElementCountError( tupleType.elements().size(), targetTuple.elements().size(), targetTuple.source() diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespace.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespace.java deleted file mode 100644 index 6e8810eb..00000000 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespace.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.shedlang.compiler.typechecker.errors; - -import org.shedlang.compiler.errors.InternalCompilerError; -import org.shedlang.compiler.sources.Source; - -public class CannotDefineStructOutsideOfNamespace extends InternalCompilerError { - public CannotDefineStructOutsideOfNamespace(Source source) { - super("Cannot define struct outside of namespace", source); - } -} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespaceError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespaceError.java new file mode 100644 index 00000000..2ac8a386 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineStructOutsideOfNamespaceError.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.typechecker.errors; + +import org.shedlang.compiler.errors.InternalCompilerError; +import org.shedlang.compiler.sources.Source; + +public class CannotDefineStructOutsideOfNamespaceError extends InternalCompilerError { + public CannotDefineStructOutsideOfNamespaceError(Source source) { + super("Cannot define struct outside of namespace", source); + } +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespace.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespace.java deleted file mode 100644 index d3f9c48c..00000000 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespace.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.shedlang.compiler.typechecker.errors; - -import org.shedlang.compiler.errors.InternalCompilerError; -import org.shedlang.compiler.sources.Source; - -public class CannotDefineSumTypeOutsideOfNamespace extends InternalCompilerError { - public CannotDefineSumTypeOutsideOfNamespace(Source source) { - super("Cannot define sum type outside of namespace", source); - } -} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespaceError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespaceError.java new file mode 100644 index 00000000..5d5505e1 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotDefineSumTypeOutsideOfNamespaceError.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.typechecker.errors; + +import org.shedlang.compiler.errors.InternalCompilerError; +import org.shedlang.compiler.sources.Source; + +public class CannotDefineSumTypeOutsideOfNamespaceError extends InternalCompilerError { + public CannotDefineSumTypeOutsideOfNamespaceError(Source source) { + super("Cannot define sum type outside of namespace", source); + } +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunction.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunction.java deleted file mode 100644 index 8b4a3c18..00000000 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunction.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.shedlang.compiler.typechecker.errors; - -import org.shedlang.compiler.errors.SourceError; -import org.shedlang.compiler.sources.Source; - -public class CannotReturnOutsideOfFunction extends SourceError { - public CannotReturnOutsideOfFunction(Source source) { - super("Cannot return outside of function", source); - } -} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunctionError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunctionError.java new file mode 100644 index 00000000..b3ce6eb4 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnOutsideOfFunctionError.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.typechecker.errors; + +import org.shedlang.compiler.errors.SourceError; +import org.shedlang.compiler.sources.Source; + +public class CannotReturnOutsideOfFunctionError extends SourceError { + public CannotReturnOutsideOfFunctionError(Source source) { + super("Cannot return outside of function", source); + } +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableName.java b/src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableName.java deleted file mode 100644 index 21771987..00000000 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableName.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.shedlang.compiler.typechecker.errors; - -import org.shedlang.compiler.errors.SourceError; -import org.shedlang.compiler.sources.Source; - -public class DuplicateVariableName extends SourceError { - private final String variableName; - - public DuplicateVariableName(String variableName, Source source) { - super("Duplicate variable name: " + variableName, source); - this.variableName = variableName; - } - - public String variableName() { - return variableName; - } -} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableNameError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableNameError.java new file mode 100644 index 00000000..b21e1d98 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/DuplicateVariableNameError.java @@ -0,0 +1,17 @@ +package org.shedlang.compiler.typechecker.errors; + +import org.shedlang.compiler.errors.SourceError; +import org.shedlang.compiler.sources.Source; + +public class DuplicateVariableNameError extends SourceError { + private final String variableName; + + public DuplicateVariableNameError(String variableName, Source source) { + super("Duplicate variable name: " + variableName, source); + this.variableName = variableName; + } + + public String variableName() { + return variableName; + } +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCount.java b/src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCount.java deleted file mode 100644 index da2d6ba9..00000000 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCount.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.shedlang.compiler.typechecker.errors; - -import org.shedlang.compiler.errors.SourceError; -import org.shedlang.compiler.sources.Source; - -public class TargetTupleHasWrongElementCount extends SourceError { - private final int expression; - private final int target; - - public TargetTupleHasWrongElementCount(int expression, int target, Source source) { - super("Expression has " + expression + " elements, but target has " + target + " elements", source); - this.expression = expression; - this.target = target; - } - - public int expression() { - return expression; - } - - public int target() { - return target; - } -} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCountError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCountError.java new file mode 100644 index 00000000..48296e20 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/TargetTupleHasWrongElementCountError.java @@ -0,0 +1,23 @@ +package org.shedlang.compiler.typechecker.errors; + +import org.shedlang.compiler.errors.SourceError; +import org.shedlang.compiler.sources.Source; + +public class TargetTupleHasWrongElementCountError extends SourceError { + private final int expression; + private final int target; + + public TargetTupleHasWrongElementCountError(int expression, int target, Source source) { + super("Expression has " + expression + " elements, but target has " + target + " elements", source); + this.expression = expression; + this.target = target; + } + + public int expression() { + return expression; + } + + public int target() { + return target; + } +} -- cgit v1.2.3