From 73dd924eba8ed58b6b21bd7ac48c49035615ffc9 Mon Sep 17 00:00:00 2001
From: Xun Yang <x299yang@uwaterloo.ca>
Date: Mon, 13 Apr 2020 14:00:10 -0400
Subject: [PATCH] fix field access extra this

---
 NameNode.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/NameNode.py b/NameNode.py
index cb727d3..d8b3f52 100644
--- a/NameNode.py
+++ b/NameNode.py
@@ -117,9 +117,10 @@ class NameNode(ASTNode):
             self.addToPrefix("contain")
 
             # evaluate THIS first, fieldnode will be added to prefixNodes in checkType()
-            cNameNode = genNameNode(self.typeName)
-            cNameNode.isThis = True
-            self.prefixNodes.append(cNameNode)
+            if not self.prefixNodes:
+                cNameNode = genNameNode(self.typeName)
+                cNameNode.isThis = True
+                self.prefixNodes.append(cNameNode)
 
             return True
         return False
@@ -242,7 +243,7 @@ class NameNode(ASTNode):
                             self.methodClass = meth.env.getNode(meth.typeName, 'type')
 
                         self.methodName = self.IDs[0]
-                        
+
                     else:
                         if curType.myType and curType.myType.isArray and self.IDs[0] == 'length':
                             self.myType = TypeStruct("int", None)
-- 
GitLab