package com.form.language.ast.type;
import com.form.language.ast.values.GenericValue;
import com.form.language.ast.values.UndefinedValue;
public final class ErrorType extends Type {
@Override
public boolean isErrorType() {
return true;
}
@Override
public String toString() {
return "Error";
}
@Override
public GenericValue defaultValue() {
return new UndefinedValue();
}
@Override
//This makes sense because there are no fields. Alternative is making this class a Singleton, but that does make the code less readable
public boolean equals(Object o) {
return (o instanceof ErrorType);
}
@Override
public int hashCode() {
return 2;
}
@Override
public <T> T accept(TypeVisitor<T> visitor) {
return visitor.visitErrorType(this);
}
}