diff --git a/src/main/java/com/tang/intellij/lua/ty/TyGeneric.kt b/src/main/java/com/tang/intellij/lua/ty/TyGeneric.kt index 772d06f6..e1abc8e4 100644 --- a/src/main/java/com/tang/intellij/lua/ty/TyGeneric.kt +++ b/src/main/java/com/tang/intellij/lua/ty/TyGeneric.kt @@ -142,6 +142,12 @@ open class TyGeneric(override val args: Array, override val base: ITy) return true } + val resolved = Ty.resolve(this, context) + + if (resolved !== this) { + return resolved.equals(other, context) + } + val resolvedOther = Ty.resolve(other, context) if (resolvedOther is ITyGeneric && args.size == resolvedOther.args.size && base.equals(resolvedOther.base, context)) { diff --git a/src/test/kotlin/com/tang/intellij/test/issues/Issues.kt b/src/test/kotlin/com/tang/intellij/test/issues/Issues.kt index d07535d6..d280656b 100644 --- a/src/test/kotlin/com/tang/intellij/test/issues/Issues.kt +++ b/src/test/kotlin/com/tang/intellij/test/issues/Issues.kt @@ -54,4 +54,18 @@ class Issues : LuaInspectionsTestBase( """.trimIndent() ) } + + // https://github.com/Benjamin-Dobell/IntelliJ-Luanalysis/issues/85 + fun test85() { + check( + """ + ---@alias set table + + ---@type set> + local aSet + + aSet = aSet + """.trimIndent() + ) + } }