blob: 5d815ef9286d6364846c681730dfa6aa9caf25d4 [file] [log] [blame]
// Copyright (c) 2023, 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.utils.collections;
import com.android.tools.r8.errors.Unreachable;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
public class ThrowingSet<T> implements Set<T> {
private static final ThrowingSet<?> INSTANCE = new ThrowingSet<>();
private ThrowingSet() {}
@SuppressWarnings("unchecked")
public static <T> ThrowingSet<T> get() {
return (ThrowingSet<T>) INSTANCE;
}
public static boolean isThrowingSet(Set<?> set) {
return set == get();
}
@Override
public boolean add(T t) {
throw new Unreachable();
}
@Override
public boolean addAll(Collection<? extends T> c) {
throw new Unreachable();
}
@Override
public void clear() {
throw new Unreachable();
}
@Override
public boolean contains(Object o) {
throw new Unreachable();
}
@Override
public boolean containsAll(Collection<?> c) {
throw new Unreachable();
}
@Override
public boolean isEmpty() {
throw new Unreachable();
}
@Override
public Iterator<T> iterator() {
throw new Unreachable();
}
@Override
public boolean remove(Object o) {
throw new Unreachable();
}
@Override
public boolean removeAll(Collection<?> c) {
throw new Unreachable();
}
@Override
public boolean retainAll(Collection<?> c) {
throw new Unreachable();
}
@Override
public int size() {
throw new Unreachable();
}
@Override
public Object[] toArray() {
throw new Unreachable();
}
@Override
public <T1> T1[] toArray(T1[] a) {
throw new Unreachable();
}
}