Skip to content

Commit 699385e

Browse files
committed
Fix JFITI extendsOrImplements casting
1 parent 5391c05 commit 699385e

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

JavaIntegration/src/main/java/org/openzen/zencode/java/module/JavaNativeTypeMembers.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.openzen.zenscript.codemodel.identifiers.instances.IteratorInstance;
1414
import org.openzen.zenscript.codemodel.type.TypeID;
1515
import org.openzen.zenscript.codemodel.type.member.ExpandedResolvedType;
16+
import org.openzen.zenscript.javashared.types.JavaFunctionalInterfaceTypeID;
1617

1718
import java.util.Collections;
1819
import java.util.List;
@@ -114,6 +115,13 @@ public List<MethodSymbol> getInterfaceMethodsToImplement() {
114115

115116
@Override
116117
public boolean extendsOrImplements(TypeID type, List<ExpansionSymbol> expansions) {
118+
if(type instanceof JavaFunctionalInterfaceTypeID) {
119+
JavaFunctionalInterfaceTypeID func = ((JavaFunctionalInterfaceTypeID) type);
120+
Class<?> cls = this.template.class_.cls;
121+
if(func.functionalInterfaceMethod.getDeclaringClass().isAssignableFrom(cls)) {
122+
return true;
123+
}
124+
}
117125
return this.type.canCastToBecauseOfWildcardGenerics(type, expansions);
118126
}
119127

0 commit comments

Comments
 (0)