Use java.util.function.Predicate instead of Guava

This commit is contained in:
Alexander Udalov
2017-03-31 20:55:28 +03:00
parent f723ad76f7
commit 08b50cab08
19 changed files with 72 additions and 149 deletions
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.checkers;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Lists;
import com.intellij.openapi.util.TextRange;
@@ -415,19 +413,14 @@ public class CheckerTestUtil {
}
public static StringBuffer addDiagnosticMarkersToText(
@NotNull final PsiFile psiFile,
@NotNull PsiFile psiFile,
@NotNull Collection<ActualDiagnostic> diagnostics,
@NotNull Map<ActualDiagnostic, TextDiagnostic> diagnosticToExpectedDiagnostic,
@NotNull Function<PsiFile, String> getFileText
) {
String text = getFileText.fun(psiFile);
StringBuffer result = new StringBuffer();
diagnostics = Collections2.filter(diagnostics, new Predicate<ActualDiagnostic>() {
@Override
public boolean apply(ActualDiagnostic actualDiagnostic) {
return psiFile.equals(actualDiagnostic.getFile());
}
});
diagnostics = CollectionsKt.filter(diagnostics, actualDiagnostic -> psiFile.equals(actualDiagnostic.getFile()));
if (!diagnostics.isEmpty()) {
List<DiagnosticDescriptor> diagnosticDescriptors = getSortedDiagnosticDescriptors(diagnostics);
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.diagnostics.rendering;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -32,6 +30,7 @@ import org.jetbrains.kotlin.types.KotlinType;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Predicate;
public class TabledDescriptorRenderer {
public interface TableOrTextRenderer {}
@@ -68,8 +67,7 @@ public class TabledDescriptorRenderer {
}
public TableRenderer functionArgumentTypeList(@Nullable KotlinType receiverType, @NotNull List<KotlinType> argumentTypes) {
return functionArgumentTypeList(receiverType, argumentTypes, Predicates.<ConstraintPosition>alwaysFalse());
return functionArgumentTypeList(receiverType, argumentTypes, position -> false);
}
public TableRenderer functionArgumentTypeList(@Nullable KotlinType receiverType,
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.psi;
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiComment;
@@ -47,6 +46,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Predicate;
public class KtPsiUtil {
private KtPsiUtil() {
@@ -587,13 +587,6 @@ public class KtPsiUtil {
return null;
}
public static final Predicate<KtElement> ANY_JET_ELEMENT = new Predicate<KtElement>() {
@Override
public boolean apply(@Nullable KtElement input) {
return true;
}
};
@NotNull
public static String getText(@Nullable PsiElement element) {
return element != null ? element.getText() : "";
@@ -644,17 +637,17 @@ public class KtPsiUtil {
public static KtElement getOutermostDescendantElement(
@Nullable PsiElement root,
boolean first,
final @NotNull Predicate<KtElement> predicate
@NotNull Predicate<KtElement> predicate
) {
if (!(root instanceof KtElement)) return null;
final List<KtElement> results = Lists.newArrayList();
List<KtElement> results = Lists.newArrayList();
root.accept(
new KtVisitorVoid() {
@Override
public void visitKtElement(@NotNull KtElement element) {
if (predicate.apply(element)) {
if (predicate.test(element)) {
//noinspection unchecked
results.add(element);
}
@@ -680,7 +673,7 @@ public class KtPsiUtil {
public static PsiElement skipSiblingsBackwardByPredicate(@Nullable PsiElement element, Predicate<PsiElement> elementsToSkip) {
if (element == null) return null;
for (PsiElement e = element.getPrevSibling(); e != null; e = e.getPrevSibling()) {
if (elementsToSkip.apply(e)) continue;
if (elementsToSkip.test(e)) continue;
return e;
}
return null;
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.resolve.lazy;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
@@ -25,7 +23,10 @@ import org.jetbrains.kotlin.descriptors.ClassifierDescriptor;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
import org.jetbrains.kotlin.name.*;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.name.FqNamesUtilKt;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.name.SpecialNames;
import org.jetbrains.kotlin.psi.KtNamedDeclaration;
import org.jetbrains.kotlin.psi.KtNamedDeclarationUtil;
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
@@ -33,6 +34,7 @@ import org.jetbrains.kotlin.resolve.scopes.MemberScope;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.function.Predicate;
public class ResolveSessionUtils {
@@ -41,11 +43,11 @@ public class ResolveSessionUtils {
@NotNull
public static Collection<ClassDescriptor> getClassDescriptorsByFqName(@NotNull ModuleDescriptor module, @NotNull FqName fqName) {
return getClassOrObjectDescriptorsByFqName(module, fqName, Predicates.<ClassDescriptor>alwaysTrue());
return getClassOrObjectDescriptorsByFqName(module, fqName, descriptor -> true);
}
@NotNull
public static Collection<ClassDescriptor> getClassOrObjectDescriptorsByFqName(
private static Collection<ClassDescriptor> getClassOrObjectDescriptorsByFqName(
@NotNull ModuleDescriptor module,
@NotNull FqName fqName,
@NotNull Predicate<ClassDescriptor> filter
@@ -60,7 +62,7 @@ public class ResolveSessionUtils {
if (!packageDescriptor.isEmpty()) {
FqName relativeClassFqName = FqNamesUtilKt.tail(fqName, packageFqName);
ClassDescriptor classDescriptor = findClassByRelativePath(packageDescriptor.getMemberScope(), relativeClassFqName);
if (classDescriptor != null && filter.apply(classDescriptor)) {
if (classDescriptor != null && filter.test(classDescriptor)) {
result.add(classDescriptor);
}
}
@@ -16,11 +16,10 @@
package org.jetbrains.kotlin.resolve.lazy.declarations;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import kotlin.collections.CollectionsKt;
import kotlin.jvm.functions.Function0;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -72,17 +71,12 @@ public class FileBasedDeclarationProviderFactory extends AbstractDeclarationProv
}
}
/*package*/ boolean isPackageDeclaredExplicitly(@NotNull FqName packageFqName) {
private boolean isPackageDeclaredExplicitly(@NotNull FqName packageFqName) {
return index.invoke().declaredPackages.contains(packageFqName);
}
/*package*/ Collection<FqName> getAllDeclaredSubPackagesOf(@NotNull final FqName parent) {
return Collections2.filter(index.invoke().declaredPackages, new Predicate<FqName>() {
@Override
public boolean apply(FqName fqName) {
return !fqName.isRoot() && fqName.parent().equals(parent);
}
});
/*package*/ Collection<FqName> getAllDeclaredSubPackagesOf(@NotNull FqName parent) {
return CollectionsKt.filter(index.invoke().declaredPackages, fqName -> !fqName.isRoot() && fqName.parent().equals(parent));
}
@Nullable
@@ -16,9 +16,6 @@
package org.jetbrains.kotlin.resolve.lazy.descriptors;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiNameIdentifierOwner;
import kotlin.collections.CollectionsKt;
@@ -73,13 +70,11 @@ import static org.jetbrains.kotlin.resolve.BindingContext.TYPE;
import static org.jetbrains.kotlin.resolve.ModifiersChecker.*;
public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDescriptorWithResolutionScopes, LazyEntity {
private static final Predicate<KotlinType> VALID_SUPERTYPE = new Predicate<KotlinType>() {
@Override
public boolean apply(KotlinType type) {
assert !type.isError() : "Error types must be filtered out in DescriptorResolver";
return TypeUtils.getClassDescriptor(type) != null;
}
private static final Function1<KotlinType, Boolean> VALID_SUPERTYPE = type -> {
assert !type.isError() : "Error types must be filtered out in DescriptorResolver";
return TypeUtils.getClassDescriptor(type) != null;
};
private final LazyClassContext c;
@Nullable // can be null in KtScript
@@ -735,6 +730,6 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
.resolveSupertypes(getScopeForClassHeaderResolution(), this, classOrObject,
c.getTrace());
return Lists.newArrayList(Collections2.filter(allSupertypes, VALID_SUPERTYPE));
return new ArrayList<>(CollectionsKt.filter(allSupertypes, VALID_SUPERTYPE));
}
}
@@ -16,15 +16,14 @@
package org.jetbrains.kotlin.types
import com.google.common.base.Predicates
import com.google.common.collect.Maps
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
import org.jetbrains.kotlin.types.checker.TypeCheckingProcedure
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.resolve.DescriptorUtils
object CastDiagnosticsUtil {
@@ -150,8 +149,8 @@ object CastDiagnosticsUtil {
if (supertypeWithVariables != null) {
// Now, let's try to unify Collection<T> and Collection<Foo> solution is a map from T to Foo
val solution = TypeUnifier.unify(
TypeProjectionImpl(supertype), TypeProjectionImpl(supertypeWithVariables),
Predicates.`in`(variableConstructors))
TypeProjectionImpl(supertype), TypeProjectionImpl(supertypeWithVariables), variableConstructors::contains
)
substitution = Maps.newHashMap(solution.substitution)
}
else {
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.types;
import com.google.common.base.Predicate;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import org.jetbrains.annotations.NotNull;
@@ -24,6 +23,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
public class TypeUnifier {
@@ -100,7 +100,7 @@ public class TypeUnifier {
// Foo ~ X => x |-> Foo
TypeConstructor maybeVariable = withVariables.getConstructor();
if (isVariable.apply(maybeVariable)) {
if (isVariable.test(maybeVariable)) {
result.put(maybeVariable, new TypeProjectionImpl(knownProjectionKind, known));
return;
}