浏览代码

Fix matchesExact check only comparing minimum amount of parametters

kindlich 4 年前
父节点
当前提交
1d0289c19f
找不到此签名对应的密钥
共有 1 个文件被更改,包括 7 次插入6 次删除
  1. 7
    6
      CodeModel/src/main/java/org/openzen/zenscript/codemodel/FunctionHeader.java

+ 7
- 6
CodeModel/src/main/java/org/openzen/zenscript/codemodel/FunctionHeader.java 查看文件

@@ -239,12 +239,13 @@ public class FunctionHeader {
239 239
 			return false;
240 240
 		
241 241
 		FunctionHeader header = fillGenericArguments(position, scope, arguments.typeArguments);
242
-		for (int i = 0; i < header.minParameters; i++) {
243
-			if (!arguments.arguments[i].type.equals(header.parameters[i].type))
244
-				return false;
245
-		}
246
-		
247
-		return true;
242
+        final boolean variadicCall = header.isVariadicCall(arguments, scope);
243
+        for(int i = 0; i < arguments.arguments.length; i++) {
244
+            if(!arguments.arguments[i].type.equals(header.getParameterType(variadicCall, i)))
245
+                return false;
246
+        }
247
+        
248
+        return true;
248 249
 	}
249 250
 	
250 251
 	public boolean matchesImplicitly(CodePosition position, CallArguments arguments, TypeScope scope) {

正在加载...
取消
保存