| // Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| package com.android.tools.r8.regress.b63935662; |
| |
| import java.util.function.BiConsumer; |
| |
| public class TestFromBug { |
| |
| public interface Map<K, V> { |
| default void forEach(BiConsumer<? super K, ? super V> action) { |
| System.out.println("Map.forEach"); |
| } |
| } |
| |
| public interface ConcurrentMap<K, V> extends Map<K,V> { |
| @Override |
| default void forEach(BiConsumer<? super K, ? super V> action) { |
| System.out.println("ConcurrentMap.forEach"); |
| } |
| } |
| |
| public static abstract class AbstractMap<K,V> implements Map<K, V> {} |
| public static class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V> {} |
| |
| public static void main(String[] args) { |
| new ConcurrentHashMap<String, String>().forEach(null); |
| } |
| } |