| // 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); | |
| } | |
| } |