mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
+17
-12
@@ -47,6 +47,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class HighlightClassUtil {
|
||||
private static final QuickFixFactory QUICK_FIX_FACTORY = QuickFixFactory.getInstance();
|
||||
@@ -235,7 +236,7 @@ public class HighlightClassUtil {
|
||||
if (aClass.getParent() != containingFile || !aClass.hasModifierProperty(PsiModifier.PUBLIC) || !(containingFile instanceof PsiJavaFile)) return null;
|
||||
PsiJavaFile file = (PsiJavaFile)containingFile;
|
||||
VirtualFile virtualFile = file.getVirtualFile();
|
||||
if (virtualFile == null || aClass.getName().equals(virtualFile.getNameWithoutExtension())) {
|
||||
if (virtualFile == null || virtualFile.getNameWithoutExtension().equals(aClass.getName())) {
|
||||
return null;
|
||||
}
|
||||
String message = JavaErrorMessages.message("public.class.should.be.named.after.file", aClass.getName());
|
||||
@@ -253,7 +254,7 @@ public class HighlightClassUtil {
|
||||
for (PsiClass otherClass : classes) {
|
||||
if (!otherClass.getManager().areElementsEquivalent(otherClass, aClass) &&
|
||||
otherClass.hasModifierProperty(PsiModifier.PUBLIC) &&
|
||||
otherClass.getName().equals(virtualFile.getNameWithoutExtension())) {
|
||||
virtualFile.getNameWithoutExtension().equals(otherClass.getName())) {
|
||||
return errorResult;
|
||||
}
|
||||
}
|
||||
@@ -564,22 +565,26 @@ public class HighlightClassUtil {
|
||||
@NotNull TextRange range,
|
||||
@NotNull PsiClass subClass,
|
||||
@NotNull PsiClass superClass) {
|
||||
PsiElement resolved = JavaResolveUtil.resolveImaginarySuperCallInThisPlace(subClass, subClass.getProject(), superClass);
|
||||
Project project = subClass.getProject();
|
||||
PsiElement resolved = JavaResolveUtil.resolveImaginarySuperCallInThisPlace(subClass, project, superClass);
|
||||
if (resolved != null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// find two ambiguous var-args-only constructors
|
||||
List<PsiMethod> varargConstructors = new ArrayList<>();
|
||||
for (PsiMethod constructor : constructors) {
|
||||
final PsiParameter[] parameters = constructor.getParameterList().getParameters();
|
||||
if (parameters.length == 1 && parameters[0].isVarArgs()) {
|
||||
varargConstructors.add(constructor);
|
||||
if (varargConstructors.size() == 2) break;
|
||||
}
|
||||
}
|
||||
List<PsiMethod> varargConstructors = Arrays.stream(constructors)
|
||||
.filter(constructor -> constructor.getParameterList().getParameters().length == 1)
|
||||
.filter(constructor -> constructor.getParameterList().getParameters()[0].isVarArgs())
|
||||
.filter(constructor -> PsiResolveHelper.SERVICE.getInstance(project).isAccessible(constructor, subClass, subClass))
|
||||
.limit(2).collect(Collectors.toList());
|
||||
|
||||
if (varargConstructors.size() > 1) {
|
||||
//List<PsiMethod> varargConstructors = Arrays.stream(constructors)
|
||||
// .map(constructor -> Pair.create(constructor, constructor.getParameterList().getParameters()))
|
||||
// .filter(p -> p.second.length == 1 && p.second[0].isVarArgs() && PsiResolveHelper.SERVICE.getInstance(project).isAccessible(p.first, subClass, subClass))
|
||||
// .map(p -> p.first)
|
||||
// .limit(2).collect(Collectors.toList());
|
||||
//
|
||||
if (varargConstructors.size() == 2) {
|
||||
final String m1 = PsiFormatUtil.formatMethod(varargConstructors.get(0), PsiSubstitutor.EMPTY,
|
||||
PsiFormatUtilBase.SHOW_CONTAINING_CLASS |
|
||||
PsiFormatUtilBase.SHOW_NAME |
|
||||
|
||||
Reference in New Issue
Block a user