| // 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 desugaringwithandroidjar25; |
| |
| import java.util.ArrayList; |
| import java.util.Collection; |
| import java.util.Iterator; |
| import java.util.function.Predicate; |
| |
| public class DefaultMethodInAndroidJar25 { |
| public static void main(String[] args) throws Exception { |
| ClassWithDefaultPlatformMethods.test(); |
| } |
| } |
| |
| class ClassWithDefaultPlatformMethods implements Collection<String> { |
| private final ArrayList<String> list = |
| new ArrayList<String>() {{ |
| add("First"); |
| add("Second"); |
| }}; |
| |
| static void test() { |
| ClassWithDefaultPlatformMethods instance = new ClassWithDefaultPlatformMethods(); |
| instance.forEach(x -> System.out.println("BEFORE: " + x)); |
| instance.removeIf(x -> true); |
| instance.forEach(x -> System.out.println("AFTER: " + x)); |
| } |
| |
| @Override |
| public int size() { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean isEmpty() { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean contains(Object o) { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public Iterator<String> iterator() { |
| return list.iterator(); |
| } |
| |
| @Override |
| public Object[] toArray() { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public <T> T[] toArray(T[] a) { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean add(String s) { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean remove(Object o) { |
| return list.remove(o); |
| } |
| |
| @Override |
| public boolean containsAll(Collection<?> c) { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean addAll(Collection<? extends String> c) { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean removeAll(Collection<?> c) { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean retainAll(Collection<?> c) { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public void clear() { |
| throw new AssertionError(); |
| } |
| |
| @Override |
| public boolean removeIf(Predicate<? super String> filter) { |
| return Collection.super.removeIf(filter); |
| } |
| } |