From 6a8415485ee30f94921dd4fdec9d7e14c0174a13 Mon Sep 17 00:00:00 2001 From: Benjamin Dobell Date: Sat, 24 Jul 2021 04:51:33 +1000 Subject: [PATCH] Fixed generic alias equality. Closes #85 --- .../java/com/tang/intellij/lua/ty/TyGeneric.kt | 6 ++++++ .../kotlin/com/tang/intellij/test/issues/Issues.kt | 14 ++++++++++++++ 2 files changed, 20 insertions(+) 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() + ) + } }