瀏覽代碼

Patched problem with nested record

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8338 8c9fc860-2736-0410-a75d-ab315db34111
felixf 6 年之前
父節點
當前提交
2f1795e2f6
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      source/FoxSemanticChecker.Mod

+ 3 - 3
source/FoxSemanticChecker.Mod

@@ -7707,6 +7707,9 @@ TYPE
 			withPart.SetType(type);
 			withPart.SetType(type);
 			variableType := variable.type.resolved;
 			variableType := variable.type.resolved;
 
 
+			WHILE variable IS SyntaxTree.TypeGuardDesignator DO
+				variable := variable(SyntaxTree.TypeGuardDesignator).left(SyntaxTree.Designator);
+			END;
 
 
 			IF (type.resolved = SyntaxTree.invalidType) OR (variableType = SyntaxTree.invalidType) THEN (* error already reported *)
 			IF (type.resolved = SyntaxTree.invalidType) OR (variableType = SyntaxTree.invalidType) THEN (* error already reported *)
 			ELSIF ~(type.resolved = variableType) & ~IsExtensibleDesignator(variable) THEN
 			ELSIF ~(type.resolved = variableType) & ~IsExtensibleDesignator(variable) THEN
@@ -7760,9 +7763,6 @@ TYPE
 			
 			
 			variable := ResolveDesignator(withStatement.variable);
 			variable := ResolveDesignator(withStatement.variable);
 			withStatement.SetVariable(variable);
 			withStatement.SetVariable(variable);
-			WHILE variable IS SyntaxTree.TypeGuardDesignator DO
-				variable := variable(SyntaxTree.TypeGuardDesignator).left(SyntaxTree.Designator);
-			END;
 
 
 
 
 			FOR i := 0 TO withStatement.WithParts()-1 DO
 			FOR i := 0 TO withStatement.WithParts()-1 DO