|
@@ -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);
|