瀏覽代碼

patch for overloaded operators with parameters of procedure type (delegate vs non-delegate)

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

+ 6 - 0
source/FoxSemanticChecker.Mod

@@ -8553,6 +8553,12 @@ TYPE
 			rightParameter := right.firstParameter;
 			i := 0;
 			result := 0;
+			IF right.isDelegate & ~procedureType.isDelegate THEN
+				result := Infinity;
+			ELSIF procedureType.isDelegate & ~right.isDelegate THEN
+				INC(result);
+			END; 
+			
 			(*! taken from paco, seems to not be 100% correct, check (in particular array part -> length of arrays??) *)
 			WHILE (formalParameter # NIL) & (result # Infinity) DO
 				distance := TypeDistance(system,rightParameter.type.resolved,formalParameter.type.resolved,formalParameter.kind = SyntaxTree.VarParameter);