check enum synthetic method by erased signatures (IDEA-203732)

This commit is contained in:
Anna.Kozlova
2018-12-07 19:41:05 +01:00
parent de81517313
commit 2b64f13de2
2 changed files with 7 additions and 1 deletions
@@ -873,7 +873,7 @@ public class GenericsHighlightUtil {
final PsiType javaLangString = PsiType.getJavaLangString(PsiManager.getInstance(project), GlobalSearchScope.allScope(project));
final MethodSignature valueOfMethod = MethodSignatureUtil.createMethodSignature("valueOf", new PsiType[]{javaLangString}, PsiTypeParameter.EMPTY_ARRAY,
PsiSubstitutor.EMPTY);
return valueOfMethod.equals(methodSignature);
return MethodSignatureUtil.areSignaturesErasureEqual(valueOfMethod, methodSignature);
}
@Nullable
@@ -38,6 +38,12 @@ enum Operation {
<error descr="'valueOf(String)' is already defined in 'Operation'">void valueOf(String s)</error> {}
}
enum enumWithTypeParameterInValueOf {
;
<error descr="'valueOf(String)' is already defined in 'enumWithTypeParameterInValueOf'">static <T> void valueOf(String s)</error> {}
}
<error descr="There is no default constructor available in 'Operation'">class exte extends <error descr="Cannot inherit from enum 'Operation'">Operation</error></error> {
}