From ba8810e5df31a8d418ccb426c51be03ef2120743 Mon Sep 17 00:00:00 2001 From: Daniel Holle Date: Fri, 19 Jul 2024 18:04:33 +0200 Subject: [PATCH] I don't know why isFunctionalInterface returns true on things that aren't even interfaces but here we go --- src/main/java/de/dhbwstuttgart/bytecode/Codegen.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java b/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java index 77d1460c..d5b11caa 100644 --- a/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java +++ b/src/main/java/de/dhbwstuttgart/bytecode/Codegen.java @@ -305,8 +305,11 @@ public class Codegen { private boolean isFunctionalInterface(TargetType type) { if (type instanceof TargetFunNType) return true; - if (type instanceof TargetRefType) - return compiler.getClass(new JavaClassName(type.name())).isFunctionalInterface(); + if (type instanceof TargetRefType) { + var clazz = compiler.getClass(new JavaClassName(type.name())); + return (clazz.getModifiers() & Modifier.INTERFACE) != 0 && clazz.isFunctionalInterface(); + } + return false; }