mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
safe varags: enable add safe varargs on constructor
This commit is contained in:
+1
-1
@@ -985,7 +985,7 @@ public class GenericsHighlightUtil {
|
||||
if (!method.isVarArgs()) {
|
||||
return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, safeVarargsAnnotation, "@SafeVarargs is not allowed on methods with fixed arity");
|
||||
}
|
||||
if (!method.hasModifierProperty(PsiModifier.STATIC) && !method.hasModifierProperty(PsiModifier.FINAL)) {
|
||||
if (!method.hasModifierProperty(PsiModifier.STATIC) && !method.hasModifierProperty(PsiModifier.FINAL) && !method.isConstructor()) {
|
||||
return HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR, safeVarargsAnnotation, "@SafeVarargs is not allowed on non-final instance methods");
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ public class PossibleHeapPollutionVarargsInspection extends BaseJavaLocalInspect
|
||||
//if (containingClass == null || containingClass.isInterface()) return; do not add
|
||||
holder.registerProblem(nameIdentifier, "Possible heap pollution from parameterized vararg type #loc",
|
||||
//todo check if can be final or static
|
||||
method.hasModifierProperty(PsiModifier.FINAL) || method.hasModifierProperty(PsiModifier.STATIC) ? new AnnotateAsSafeVarargsQuickFix() : null);
|
||||
method.hasModifierProperty(PsiModifier.FINAL) || method.hasModifierProperty(PsiModifier.STATIC) || method.isConstructor() ? new AnnotateAsSafeVarargsQuickFix() : null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+14
@@ -45,3 +45,17 @@ public class SafeVarargsTests {
|
||||
public static <T> void foo2(List<? extends T>... <warning descr="Parameter 't' is never used">t</warning>){}
|
||||
|
||||
}
|
||||
|
||||
abstract class AClass {
|
||||
@SafeVarargs
|
||||
<T> AClass(T... d){
|
||||
System.out.println(d);
|
||||
}
|
||||
}
|
||||
|
||||
class ABClass extends AClass {
|
||||
@SafeVarargs
|
||||
<T> ABClass(T... d){
|
||||
super(d);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user