diff --git a/pom.xml b/pom.xml
index 685dd23..ac18ace 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,7 @@
Compiler
+ NichtHaskellCompiler
jar-with-dependencies
diff --git a/src/main/java/abstractSyntaxTree/Expression/BinaryExpression.java b/src/main/java/abstractSyntaxTree/Expression/BinaryExpression.java
index ee4fed3..c277bce 100644
--- a/src/main/java/abstractSyntaxTree/Expression/BinaryExpression.java
+++ b/src/main/java/abstractSyntaxTree/Expression/BinaryExpression.java
@@ -15,8 +15,9 @@ import java.util.Objects;
public class BinaryExpression extends AbstractType implements IExpression{
public String operator;
- public IExpression left; // This needs TypeCheckResult
+ public IExpression left;
public IExpression right;
+ public String thisClass;
public BinaryExpression(String operator, IExpression left, IExpression right) {
this.operator = operator;
@@ -28,6 +29,10 @@ public class BinaryExpression extends AbstractType implements IExpression{
public TypeCheckResult typeCheck(HashMap>> methodContext, HashMap> typeContext, HashMap localVars) throws TypeCheckException {
TypeCheckResult result = new TypeCheckResult();
+ if(left instanceof LocalVarIdentifier localVarIdentifier)
+ localVarIdentifier.thisClass = this.thisClass;
+ if(right instanceof LocalVarIdentifier localVarIdentifier)
+ localVarIdentifier.thisClass = this.thisClass;
TypeCheckResult leftType = left.typeCheck(methodContext, typeContext, localVars);
TypeCheckResult rightType = right.typeCheck(methodContext, typeContext, localVars);
diff --git a/src/main/java/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java b/src/main/java/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java
index 07f311d..076fceb 100644
--- a/src/main/java/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java
+++ b/src/main/java/abstractSyntaxTree/StatementExpression/AssignStatementExpression.java
@@ -4,6 +4,7 @@ import TypeCheck.AbstractType;
import TypeCheck.TypeCheckException;
import TypeCheck.TypeCheckHelper;
import TypeCheck.TypeCheckResult;
+import abstractSyntaxTree.Expression.BinaryExpression;
import abstractSyntaxTree.Expression.IExpression;
import abstractSyntaxTree.Expression.InstVarExpression;
import abstractSyntaxTree.Expression.LocalVarIdentifier;
@@ -54,6 +55,8 @@ public class AssignStatementExpression extends AbstractType implements IExpressi
methodCallStatementExpression.thisClass = this.thisClass;
if(right instanceof LocalVarIdentifier localVarIdentifierRight)
localVarIdentifierRight.thisClass = this.thisClass;
+ if(right instanceof BinaryExpression binaryExpression)
+ binaryExpression.thisClass = this.thisClass;
TypeCheckResult rightType = right.typeCheck(methodContext, typeContext, localVars);