mirror of
https://github.com/JonathanFleischmann/CompilerULTIMATE.git
synced 2024-12-27 09:08:04 +00:00
update the typeCheck of TypedReturn
This commit is contained in:
parent
e49691ff29
commit
31d57c8ba9
@ -28,18 +28,14 @@ public class TypedReturn implements TypedStatement {
|
||||
|
||||
@Override
|
||||
public Type typeCheck(Map<String, Type> localVar, TypedClass clas) {
|
||||
//TODO: not localvar
|
||||
for(var typedMethod : clas.getTypedMethods()) {
|
||||
if(localVar.containsKey(typedMethod.getName())) {
|
||||
if(typedMethod.getReturnType().getKind() != this.type.getKind()) {
|
||||
//TODO: exception auslagern
|
||||
StringBuilder exp = new StringBuilder();
|
||||
exp.append("\nMismatched return type: ");
|
||||
exp.append("\nExpected: ").append(typedMethod.getReturnType().getKind());
|
||||
exp.append("\nActual: ").append(this.type.getKind());
|
||||
exp.append("\nMethod name: ").append(typedMethod.getName());
|
||||
throw new RuntimeException(exp.toString());
|
||||
}
|
||||
if(clas.isCurrentMethodPresent()){
|
||||
if(clas.getCurrentMethod().getReturnType().getKind() != this.type.getKind()){
|
||||
StringBuilder exp = new StringBuilder();
|
||||
exp.append("\nMismatched return type: ");
|
||||
exp.append("\nExpected: ").append(clas.getCurrentMethod().getReturnType().getKind());
|
||||
exp.append("\nActual: ").append(this.type.getKind());
|
||||
exp.append("\nMethod name: ").append(clas.getCurrentMethod().getName());
|
||||
throw new RuntimeException(exp.toString());
|
||||
}
|
||||
}
|
||||
return type;
|
||||
|
Loading…
Reference in New Issue
Block a user