From 1944f758026bf21c456c152a8a9a142f443f279e Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Thu, 9 Oct 2014 14:14:56 +0400 Subject: [PATCH] Skip default methods on single abstract method search Fix for KT-4886: SAM conversion doesn't work for interfaces with default methods #KT-4886 Fixed --- .../lang/resolve/java/sam/SingleAbstractMethodUtils.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java index 2c537d796b4..5d040ed2fa9 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/sam/SingleAbstractMethodUtils.java @@ -339,6 +339,12 @@ public class SingleAbstractMethodUtils { return true; } for (JavaMethod method : javaClass.getMethods()) { + + //skip java 8 default methods + if (!method.isAbstract()) { + continue; + } + if (DescriptorResolverUtils.isObjectMethod(method)) { // e.g., ignore toString() declared in interface continue; }