Use Java 8 lambdas instead of anonymous classes in compiler modules
This commit is contained in:
+7
-14
@@ -39,7 +39,6 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.messages.MessageBus;
|
||||
import kotlin.collections.ArraysKt;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.idea.KotlinLanguage;
|
||||
@@ -207,20 +206,14 @@ public class KotlinJavaPsiFacade {
|
||||
);
|
||||
|
||||
List<PsiElementFinder> nonKotlinFinders = ArraysKt.filter(
|
||||
getProject().getExtensions(PsiElementFinder.EP_NAME), new Function1<PsiElementFinder, Boolean>() {
|
||||
@Override
|
||||
public Boolean invoke(PsiElementFinder finder) {
|
||||
return (finder instanceof KotlinSafeClassFinder) ||
|
||||
!(finder instanceof NonClasspathClassFinder || finder instanceof KotlinFinderMarker || finder instanceof PsiElementFinderImpl);
|
||||
}
|
||||
});
|
||||
getProject().getExtensions(PsiElementFinder.EP_NAME),
|
||||
finder -> (finder instanceof KotlinSafeClassFinder) ||
|
||||
!(finder instanceof NonClasspathClassFinder ||
|
||||
finder instanceof KotlinFinderMarker ||
|
||||
finder instanceof PsiElementFinderImpl)
|
||||
);
|
||||
|
||||
elementFinders.addAll(CollectionsKt.map(nonKotlinFinders, new Function1<PsiElementFinder, KotlinPsiElementFinderWrapper>() {
|
||||
@Override
|
||||
public KotlinPsiElementFinderWrapper invoke(PsiElementFinder finder) {
|
||||
return wrap(finder);
|
||||
}
|
||||
}));
|
||||
elementFinders.addAll(CollectionsKt.map(nonKotlinFinders, KotlinJavaPsiFacade::wrap));
|
||||
|
||||
return elementFinders.toArray(new KotlinPsiElementFinderWrapper[elementFinders.size()]);
|
||||
}
|
||||
|
||||
+16
-19
@@ -27,27 +27,24 @@ import java.util.List;
|
||||
|
||||
public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension {
|
||||
|
||||
private static final DiagnosticParameterRenderer<ConflictingJvmDeclarationsData> CONFLICTING_JVM_DECLARATIONS_DATA = new DiagnosticParameterRenderer<ConflictingJvmDeclarationsData>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@NotNull ConflictingJvmDeclarationsData data, @NotNull RenderingContext context) {
|
||||
List<DeclarationDescriptor> renderedDescriptors = new ArrayList<DeclarationDescriptor>();
|
||||
for (JvmDeclarationOrigin origin : data.getSignatureOrigins()) {
|
||||
DeclarationDescriptor descriptor = origin.getDescriptor();
|
||||
if (descriptor != null) {
|
||||
renderedDescriptors.add(descriptor);
|
||||
private static final DiagnosticParameterRenderer<ConflictingJvmDeclarationsData> CONFLICTING_JVM_DECLARATIONS_DATA =
|
||||
(data, context) -> {
|
||||
List<DeclarationDescriptor> renderedDescriptors = new ArrayList<DeclarationDescriptor>();
|
||||
for (JvmDeclarationOrigin origin : data.getSignatureOrigins()) {
|
||||
DeclarationDescriptor descriptor = origin.getDescriptor();
|
||||
if (descriptor != null) {
|
||||
renderedDescriptors.add(descriptor);
|
||||
}
|
||||
}
|
||||
}
|
||||
Collections.sort(renderedDescriptors, MemberComparator.INSTANCE);
|
||||
RenderingContext.Impl renderingContext = new RenderingContext.Impl(renderedDescriptors);
|
||||
Collections.sort(renderedDescriptors, MemberComparator.INSTANCE);
|
||||
RenderingContext.Impl renderingContext = new RenderingContext.Impl(renderedDescriptors);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (DeclarationDescriptor descriptor : renderedDescriptors) {
|
||||
sb.append(" ").append(Renderers.COMPACT.render(descriptor, renderingContext)).append("\n");
|
||||
}
|
||||
return ("The following declarations have the same JVM signature (" + data.getSignature().getName() + data.getSignature().getDesc() + "):\n" + sb).trim();
|
||||
}
|
||||
};
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (DeclarationDescriptor descriptor : renderedDescriptors) {
|
||||
sb.append(" ").append(Renderers.COMPACT.render(descriptor, renderingContext)).append("\n");
|
||||
}
|
||||
return ("The following declarations have the same JVM signature (" + data.getSignature().getName() + data.getSignature().getDesc() + "):\n" + sb).trim();
|
||||
};
|
||||
|
||||
private static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap("JVM");
|
||||
static {
|
||||
|
||||
+17
-29
@@ -17,10 +17,7 @@
|
||||
package org.jetbrains.kotlin.resolve.jvm.kotlinSignature;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
@@ -130,20 +127,19 @@ public class SignaturesPropagationData {
|
||||
|
||||
for (ValueParameterDescriptor originalParam : parameters) {
|
||||
int originalIndex = originalParam.getIndex();
|
||||
List<TypeAndName> typesFromSuperMethods = ContainerUtil.map(superFunctions,
|
||||
new Function<FunctionDescriptor, TypeAndName>() {
|
||||
@Override
|
||||
public TypeAndName fun(FunctionDescriptor superFunction) {
|
||||
ReceiverParameterDescriptor receiver = superFunction.getExtensionReceiverParameter();
|
||||
int index = receiver != null ? originalIndex - 1 : originalIndex;
|
||||
if (index == -1) {
|
||||
assert receiver != null : "can't happen: index is -1, while function is not extension";
|
||||
return new TypeAndName(receiver.getType(), originalParam.getName());
|
||||
}
|
||||
ValueParameterDescriptor parameter = superFunction.getValueParameters().get(index);
|
||||
return new TypeAndName(parameter.getType(), parameter.getName());
|
||||
List<TypeAndName> typesFromSuperMethods = CollectionsKt.map(
|
||||
superFunctions,
|
||||
superFunction -> {
|
||||
ReceiverParameterDescriptor receiver = superFunction.getExtensionReceiverParameter();
|
||||
int index = receiver != null ? originalIndex - 1 : originalIndex;
|
||||
if (index == -1) {
|
||||
assert receiver != null : "can't happen: index is -1, while function is not extension";
|
||||
return new TypeAndName(receiver.getType(), originalParam.getName());
|
||||
}
|
||||
});
|
||||
ValueParameterDescriptor parameter = superFunction.getValueParameters().get(index);
|
||||
return new TypeAndName(parameter.getType(), parameter.getName());
|
||||
}
|
||||
);
|
||||
|
||||
VarargCheckResult varargCheckResult = checkVarargInSuperFunctions(originalParam);
|
||||
|
||||
@@ -180,12 +176,7 @@ public class SignaturesPropagationData {
|
||||
}
|
||||
}
|
||||
|
||||
boolean hasStableParameterNames = CollectionsKt.any(superFunctions, new Function1<FunctionDescriptor, Boolean>() {
|
||||
@Override
|
||||
public Boolean invoke(FunctionDescriptor descriptor) {
|
||||
return descriptor.hasStableParameterNames();
|
||||
}
|
||||
});
|
||||
boolean hasStableParameterNames = CollectionsKt.any(superFunctions, CallableDescriptor::hasStableParameterNames);
|
||||
|
||||
return new ValueParameters(resultReceiverType, resultParameters, hasStableParameterNames);
|
||||
}
|
||||
@@ -224,13 +215,10 @@ public class SignaturesPropagationData {
|
||||
}
|
||||
|
||||
// sorting for diagnostic stability
|
||||
Collections.sort(superFunctions, new Comparator<FunctionDescriptor>() {
|
||||
@Override
|
||||
public int compare(@NotNull FunctionDescriptor fun1, @NotNull FunctionDescriptor fun2) {
|
||||
FqNameUnsafe fqName1 = getFqName(fun1.getContainingDeclaration());
|
||||
FqNameUnsafe fqName2 = getFqName(fun2.getContainingDeclaration());
|
||||
return fqName1.asString().compareTo(fqName2.asString());
|
||||
}
|
||||
Collections.sort(superFunctions, (fun1, fun2) -> {
|
||||
FqNameUnsafe fqName1 = getFqName(fun1.getContainingDeclaration());
|
||||
FqNameUnsafe fqName2 = getFqName(fun2.getContainingDeclaration());
|
||||
return fqName1.asString().compareTo(fqName2.asString());
|
||||
});
|
||||
return superFunctions;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user