浏览代码

Fixed casting through multiple layers of interfaces

Jared 5 年前
父节点
当前提交
4717402f0b
没有帐户链接到提交者的电子邮件
共有 1 个文件被更改,包括 9 次插入8 次删除
  1. 9
    8
      CodeModel/src/main/java/org/openzen/zenscript/codemodel/type/member/TypeMembers.java

+ 9
- 8
CodeModel/src/main/java/org/openzen/zenscript/codemodel/type/member/TypeMembers.java 查看文件

@@ -5,15 +5,11 @@
5 5
  */
6 6
 package org.openzen.zenscript.codemodel.type.member;
7 7
 
8
-import java.util.ArrayList;
9
-import java.util.HashMap;
10
-import java.util.List;
11
-import java.util.Map;
12
-import java.util.Set;
13 8
 import org.openzen.zencode.shared.CodePosition;
14 9
 import org.openzen.zencode.shared.CompileException;
15 10
 import org.openzen.zencode.shared.CompileExceptionCode;
16 11
 import org.openzen.zenscript.codemodel.CompareType;
12
+import org.openzen.zenscript.codemodel.GenericName;
17 13
 import org.openzen.zenscript.codemodel.OperatorType;
18 14
 import org.openzen.zenscript.codemodel.expression.CallArguments;
19 15
 import org.openzen.zenscript.codemodel.expression.CheckNullExpression;
@@ -42,14 +38,19 @@ import org.openzen.zenscript.codemodel.partial.PartialMemberGroupExpression;
42 38
 import org.openzen.zenscript.codemodel.partial.PartialStaticMemberGroupExpression;
43 39
 import org.openzen.zenscript.codemodel.partial.PartialTypeExpression;
44 40
 import org.openzen.zenscript.codemodel.partial.PartialVariantOptionExpression;
41
+import org.openzen.zenscript.codemodel.scope.TypeScope;
45 42
 import org.openzen.zenscript.codemodel.type.BasicTypeID;
46 43
 import org.openzen.zenscript.codemodel.type.DefinitionTypeID;
47
-import org.openzen.zenscript.codemodel.GenericName;
48 44
 import org.openzen.zenscript.codemodel.type.GlobalTypeRegistry;
49
-import org.openzen.zenscript.codemodel.scope.TypeScope;
50 45
 import org.openzen.zenscript.codemodel.type.StoredType;
51 46
 import org.openzen.zenscript.codemodel.type.TypeID;
52 47
 
48
+import java.util.ArrayList;
49
+import java.util.HashMap;
50
+import java.util.List;
51
+import java.util.Map;
52
+import java.util.Set;
53
+
53 54
 /**
54 55
  *
55 56
  * @author Hoofdgebruiker
@@ -559,7 +560,7 @@ public final class TypeMembers {
559 560
 			if (implementation.member.implementsType.type.getNormalized() == toType.type)
560 561
 				return castEquivalent(position, new InterfaceCastExpression(position, value, implementation.member), toType);
561 562
 		}
562
-		if (extendsType(toType.type))
563
+		if (extendsOrImplements(toType.type))
563 564
 			return new SupertypeCastExpression(position, value, toType);
564 565
 		
565 566
 		return new InvalidExpression(position, toType, CompileExceptionCode.INVALID_CAST, "Could not cast " + toString() + " to " + toType);

正在加载...
取消
保存