Filter synthetic enum methods in light classes for compiled declarations

Instead of reverted '7c86911f44b914fb2a224afbd08fea3ec025bb16' and
'43468c6d55599b7b8f2cf2e858a57b89590c99e5', this commit filters
synthetic methods only coming from the 'ClsClassImpl' directly.
diff --git a/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledDeclaration.kt b/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledDeclaration.kt
index 9abfd0f..2ca4d05 100644
--- a/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledDeclaration.kt
+++ b/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledDeclaration.kt
@@ -17,6 +17,7 @@
 import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
 import org.jetbrains.kotlin.asJava.classes.KotlinClassInnerStuffCache
 import org.jetbrains.kotlin.asJava.classes.LightClassesLazyCreator
+import org.jetbrains.kotlin.asJava.classes.isEnumSyntheticMethod
 import org.jetbrains.kotlin.asJava.classes.lazyPub
 import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
 import org.jetbrains.kotlin.psi.KtClassOrObject
@@ -155,7 +156,8 @@
 
     private val _methods: MutableList<PsiMethod> by lazyPub {
         mutableListOf<PsiMethod>().also {
-            clsDelegate.methods.mapTo(it) { psiMethod ->
+            clsDelegate.methods.mapNotNullTo(it) { psiMethod ->
+                if (isEnumSyntheticMethod(psiMethod)) return@mapNotNullTo null
                 KtLightMethodForDecompiledDeclaration(
                     funDelegate = psiMethod,
                     funParent = this,
diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/lightClassPlatformUtils.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/lightClassPlatformUtils.kt
index 81cac30..b84528c 100644
--- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/lightClassPlatformUtils.kt
+++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/lightClassPlatformUtils.kt
@@ -6,8 +6,28 @@
 package org.jetbrains.kotlin.asJava.classes
 
 import com.intellij.psi.PsiElement
+import com.intellij.psi.PsiMethod
+import com.intellij.psi.PsiModifier
+import com.intellij.psi.SyntheticElement
 import com.intellij.psi.augment.PsiAugmentProvider
 
+fun isEnumSyntheticMethod(method: PsiMethod): Boolean {
+    if (method is SyntheticElement) {
+        val name = method.name
+        if (name == "values" || name == "valueOf") {
+            if (method.hasModifierProperty(PsiModifier.PUBLIC) && method.hasModifierProperty(PsiModifier.STATIC)) {
+                val parameterCount = method.parameterList.parametersCount
+                when (name) {
+                    "values" -> if (parameterCount == 0) return true
+                    "valueOf" -> if (parameterCount == 1) return true
+                }
+            }
+        }
+    }
+
+    return false
+}
+
 internal fun <Psi : PsiElement> collectAugments(element: PsiElement, type: Class<out Psi>): List<Psi> {
     return PsiAugmentProvider.collectAugments(element, type, null)
 }