diff --git a/NameNode.py b/NameNode.py index cb727d3a7909b3bea5fedd8a2b2ed084fc36b8d2..d8b3f52c263b72a9d902f6e66b23d3578482b09d 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)