Use java.util.function.Predicate instead of Guava in JS modules
This commit is contained in:
@@ -16,11 +16,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.js.patterns;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public interface DescriptorPredicate extends Predicate<FunctionDescriptor> {
|
||||
@Override
|
||||
boolean apply(@Nullable FunctionDescriptor descriptor);
|
||||
}
|
||||
|
||||
@@ -16,13 +16,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.js.patterns;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.builtins.PrimitiveType;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
|
||||
@@ -30,6 +28,7 @@ import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public final class NamePredicate implements Predicate<Name> {
|
||||
|
||||
@@ -75,7 +74,7 @@ public final class NamePredicate implements Predicate<Name> {
|
||||
this(Arrays.asList(validNames));
|
||||
}
|
||||
|
||||
public NamePredicate(@NotNull List<String> validNames) {
|
||||
private NamePredicate(@NotNull List<String> validNames) {
|
||||
for (String validName : validNames) {
|
||||
this.validNames.add(Name.guessByFirstCharacter(validName));
|
||||
}
|
||||
@@ -90,7 +89,7 @@ public final class NamePredicate implements Predicate<Name> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(@Nullable Name name) {
|
||||
return name != null && validNames.contains(name);
|
||||
public boolean test(Name name) {
|
||||
return validNames.contains(name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ public final class PatternBuilder {
|
||||
private static DescriptorPredicate pattern(@NotNull List<NamePredicate> checkers, @Nullable List<NamePredicate> arguments) {
|
||||
assert !checkers.isEmpty();
|
||||
final List<NamePredicate> checkersWithPrefixChecker = Lists.newArrayList();
|
||||
if (!checkers.get(0).apply(KOTLIN_NAME)) {
|
||||
if (!checkers.get(0).test(KOTLIN_NAME)) {
|
||||
checkersWithPrefixChecker.add(KOTLIN_NAME_PREDICATE);
|
||||
}
|
||||
|
||||
@@ -134,8 +134,7 @@ public final class PatternBuilder {
|
||||
|
||||
return new DescriptorPredicate() {
|
||||
@Override
|
||||
public boolean apply(@Nullable FunctionDescriptor descriptor) {
|
||||
assert descriptor != null : "argument for DescriptorPredicate.apply should not be null, checkers=" + checkersWithPrefixChecker;
|
||||
public boolean test(FunctionDescriptor descriptor) {
|
||||
//TODO: no need to wrap if we check beforehand
|
||||
try {
|
||||
return doApply(descriptor);
|
||||
@@ -162,7 +161,7 @@ public final class PatternBuilder {
|
||||
ValueParameterDescriptor valueParameterDescriptor = valueParameterDescriptors.get(i);
|
||||
Name name = DescriptorUtilsKt.getNameIfStandardType(valueParameterDescriptor.getType());
|
||||
NamePredicate namePredicate = argumentCheckers.get(i);
|
||||
if (!namePredicate.apply(name)) return false;
|
||||
if (!namePredicate.test(name)) return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -172,7 +171,7 @@ public final class PatternBuilder {
|
||||
for (int i = 0; i < nameParts.size(); ++i) {
|
||||
Name namePart = nameParts.get(i);
|
||||
NamePredicate correspondingPredicate = checkersWithPrefixChecker.get(i);
|
||||
if (!correspondingPredicate.apply(namePart)) {
|
||||
if (!correspondingPredicate.test(namePart)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -233,9 +232,7 @@ public final class PatternBuilder {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(@Nullable FunctionDescriptor functionDescriptor) {
|
||||
assert functionDescriptor != null :
|
||||
"argument for DescriptorPredicate.apply should not be null, receiverFqName=" + receiverFqName + " names=" + Arrays.asList(names);
|
||||
public boolean test(FunctionDescriptor functionDescriptor) {
|
||||
ReceiverParameterDescriptor actualReceiver = functionDescriptor.getExtensionReceiverParameter();
|
||||
if (actualReceiver != null) {
|
||||
if (receiverFqName == null) return false;
|
||||
|
||||
+4
-6
@@ -16,13 +16,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.js.patterns.typePredicates
|
||||
|
||||
import com.google.common.base.Predicate
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import java.util.function.Predicate
|
||||
|
||||
public interface TypePredicate : Predicate<KotlinType> {
|
||||
override fun apply(type: KotlinType?): Boolean
|
||||
}
|
||||
interface TypePredicate : Predicate<KotlinType>
|
||||
|
||||
private val KOTLIN = TypePredicateImpl("kotlin")
|
||||
val COMPARABLE: TypePredicate = KOTLIN.inner("Comparable")
|
||||
@@ -40,8 +38,8 @@ private class TypePredicateImpl
|
||||
: TypePredicate {
|
||||
constructor(name: String) : this(listOf(name))
|
||||
|
||||
override fun apply(type: KotlinType?): Boolean {
|
||||
var descriptor: DeclarationDescriptor? = type?.constructor?.declarationDescriptor ?: return false
|
||||
override fun test(type: KotlinType): Boolean {
|
||||
var descriptor: DeclarationDescriptor? = type.constructor.declarationDescriptor ?: return false
|
||||
|
||||
for (i in nameParts.lastIndex downTo 0) {
|
||||
if (nameParts[i] != descriptor?.name?.asString()) return false
|
||||
|
||||
@@ -16,9 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.js.resolve.diagnostics
|
||||
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsFunctionScope
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsProgram
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsRootScope
|
||||
import com.google.gwt.dev.js.parserExceptions.AbortParsingException
|
||||
import com.google.gwt.dev.js.rhino.CodePosition
|
||||
import com.google.gwt.dev.js.rhino.ErrorReporter
|
||||
@@ -29,6 +26,9 @@ import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory1
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsFunctionScope
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsProgram
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsRootScope
|
||||
import org.jetbrains.kotlin.js.parser.parse
|
||||
import org.jetbrains.kotlin.js.patterns.DescriptorPredicate
|
||||
import org.jetbrains.kotlin.js.patterns.PatternBuilder
|
||||
@@ -57,7 +57,7 @@ class JsCallChecker(
|
||||
|
||||
@JvmStatic fun <F : CallableDescriptor?> ResolvedCall<F>.isJsCall(): Boolean {
|
||||
val descriptor = resultingDescriptor
|
||||
return descriptor is SimpleFunctionDescriptor && JS_PATTERN.apply(descriptor)
|
||||
return descriptor is SimpleFunctionDescriptor && JS_PATTERN.test(descriptor)
|
||||
}
|
||||
|
||||
@JvmStatic fun extractStringValue(compileTimeConstant: CompileTimeConstant<*>?): String? {
|
||||
|
||||
Reference in New Issue
Block a user