From 9684acb5e0eca2d6959950a047c456e802d1c43c Mon Sep 17 00:00:00 2001 From: Piotr Tomiak Date: Tue, 25 Mar 2025 21:38:38 +0100 Subject: [PATCH] [angular] WEB-72193 Support for inputBinding, outputBinding and twoWayBinding - support binding names in literals GitOrigin-RevId: 486853779691c013a2ec3f5acadc2f66cda39b85 --- platform/webSymbols/api-dump-experimental.txt | 2 ++ .../webSymbols/utils/ReferencingWebSymbol.kt | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/platform/webSymbols/api-dump-experimental.txt b/platform/webSymbols/api-dump-experimental.txt index f593edeeed28..0c784afa2fec 100644 --- a/platform/webSymbols/api-dump-experimental.txt +++ b/platform/webSymbols/api-dump-experimental.txt @@ -982,12 +982,14 @@ - sf:create(com.intellij.webSymbols.WebSymbolQualifiedKind,java.lang.String,com.intellij.webSymbols.WebSymbolOrigin,com.intellij.webSymbols.WebSymbolQualifiedKind[],com.intellij.webSymbols.WebSymbol$Priority):com.intellij.webSymbols.utils.ReferencingWebSymbol - sf:create(com.intellij.webSymbols.WebSymbolQualifiedKind,java.lang.String,com.intellij.webSymbols.WebSymbolOrigin,com.intellij.webSymbols.WebSymbolQualifiedKind[],com.intellij.webSymbols.WebSymbol$Priority,java.util.List):com.intellij.webSymbols.utils.ReferencingWebSymbol - createPointer():com.intellij.model.Pointer +- equals(java.lang.Object):Z - getKind():java.lang.String - getName():java.lang.String - getNamespace():java.lang.String - getOrigin():com.intellij.webSymbols.WebSymbolOrigin - getPattern():com.intellij.webSymbols.patterns.WebSymbolsPattern - getPriority():com.intellij.webSymbols.WebSymbol$Priority +- hashCode():I *f:com.intellij.webSymbols.utils.ReferencingWebSymbol$Companion - f:create(com.intellij.webSymbols.WebSymbolQualifiedKind,java.lang.String,com.intellij.webSymbols.WebSymbolOrigin,com.intellij.webSymbols.WebSymbolQualifiedKind[]):com.intellij.webSymbols.utils.ReferencingWebSymbol - f:create(com.intellij.webSymbols.WebSymbolQualifiedKind,java.lang.String,com.intellij.webSymbols.WebSymbolOrigin,com.intellij.webSymbols.WebSymbolQualifiedKind[],com.intellij.webSymbols.WebSymbol$Priority):com.intellij.webSymbols.utils.ReferencingWebSymbol diff --git a/platform/webSymbols/src/com/intellij/webSymbols/utils/ReferencingWebSymbol.kt b/platform/webSymbols/src/com/intellij/webSymbols/utils/ReferencingWebSymbol.kt index 5e83b3db8f42..1048c3a25f6a 100644 --- a/platform/webSymbols/src/com/intellij/webSymbols/utils/ReferencingWebSymbol.kt +++ b/platform/webSymbols/src/com/intellij/webSymbols/utils/ReferencingWebSymbol.kt @@ -7,6 +7,7 @@ import com.intellij.webSymbols.patterns.ComplexPatternOptions import com.intellij.webSymbols.patterns.WebSymbolsPattern import com.intellij.webSymbols.patterns.WebSymbolsPatternFactory import com.intellij.webSymbols.patterns.WebSymbolsPatternReferenceResolver +import java.util.Objects /** * A utility [WebSymbol], which allows to reference @@ -19,7 +20,7 @@ class ReferencingWebSymbol private constructor( override val origin: WebSymbolOrigin, vararg references: WebSymbolQualifiedKind, override val priority: WebSymbol.Priority?, - location: List = emptyList(), + private val location: List = emptyList(), ) : WebSymbol { companion object { @@ -39,6 +40,8 @@ class ReferencingWebSymbol private constructor( ) } + private val references = references.toList() + override val pattern: WebSymbolsPattern = WebSymbolsPatternFactory.createComplexPattern( ComplexPatternOptions( @@ -53,6 +56,20 @@ class ReferencingWebSymbol private constructor( ) ) + override fun equals(other: Any?): Boolean = + other === this || + other is ReferencingWebSymbol + && other.namespace == namespace + && other.kind == kind + && other.name == name + && other.origin == origin + && other.priority == priority + && other.location == location + && other.references == references + + override fun hashCode(): Int = + Objects.hash(namespace, kind, name, origin, priority, location, references) + override fun createPointer(): Pointer = Pointer.hardPointer(this)