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