mirror of
https://github.com/alibaba/p3c.git
synced 2025-10-14 15:10:54 +00:00
do not check array and class starts with java. or javax.
This commit is contained in:
@@ -86,8 +86,12 @@ class MapOrSetKeyShouldOverrideHashCodeEqualsRule : AbstractEclipseRule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun isOverrideEqualsAndHashCode(genericType: ITypeBinding): Boolean {
|
private fun isOverrideEqualsAndHashCode(genericType: ITypeBinding): Boolean {
|
||||||
// skip enum
|
val skip = genericType.isEnum || genericType.isInterface || genericType.isArray
|
||||||
if (genericType.isEnum || genericType.isInterface || genericType.isTypeVariable || genericType.isWildcardType) {
|
|| genericType.isTypeVariable || genericType.isWildcardType
|
||||||
|
|| genericType.qualifiedName?.startsWith(skipJdkPackageJava) ?: false
|
||||||
|
|| genericType.qualifiedName?.startsWith(skipJdkPackageJavax) ?: false
|
||||||
|
// skip
|
||||||
|
if (skip) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -171,16 +171,20 @@ class MapOrSetKeyShouldOverrideHashCodeEqualsInspection : BaseInspection, AliBas
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
|
private val skipJdkPackageJava = "java."
|
||||||
|
private val skipJdkPackageJavax = "javax."
|
||||||
|
|
||||||
private fun redefineHashCodeEquals(psiType: PsiType): Boolean {
|
private fun redefineHashCodeEquals(psiType: PsiType): Boolean {
|
||||||
if (psiType !is PsiClassType) {
|
if (psiType !is PsiClassType) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
val psiClass = psiType.resolve()
|
val psiClass = psiType.resolve() ?: return false
|
||||||
if (psiClass == null || psiClass.containingFile == null || psiClass is PsiTypeParameter
|
val skip = psiClass.containingFile == null || psiClass is PsiTypeParameter
|
||||||
|| psiClass.isEnum || psiClass.isInterface) {
|
|| psiClass.isEnum || psiClass.isInterface
|
||||||
return true
|
|| psiClass.containingFile.fileType !is JavaFileType
|
||||||
}
|
|| psiClass.qualifiedName?.startsWith(skipJdkPackageJava) ?: false
|
||||||
if (psiClass.containingFile.fileType !is JavaFileType) {
|
|| psiClass.qualifiedName?.startsWith(skipJdkPackageJavax) ?: false
|
||||||
|
if (skip) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
val hashCodeMethods = psiClass.findMethodsByName(ObjectConstants.METHOD_NAME_HASHCODE, false)
|
val hashCodeMethods = psiClass.findMethodsByName(ObjectConstants.METHOD_NAME_HASHCODE, false)
|
||||||
|
Reference in New Issue
Block a user