@@ -750,7 +750,7 @@ Items below are NOT duplicated elsewhere in this file.
75075034 . ** TatSu 5.17.0 is broken** — Pin ` TatSu>=5.12.0,<5.17.0 `
75175135 . ** No ` inline ` on Contents extensions** — ScalaDoc 3.7.4
752752 crashes. Filed: scala/scala3 #25306
753- 36 . ** Current release is 1.15.1 ** — State-as-Branch + ` do ` alias
753+ 36 . ** Current release is 1.15.3 ** — MessageFlowPass fix + perf opts
75475445 . ** State is a Branch** — State extends ` Branch[StateContents] `
755755 where ` StateContents = Handler | Comment ` . PassVisitor uses
756756 ` openState ` /` closeState ` (not ` doState ` ). ResolutionPass
@@ -776,3 +776,28 @@ Items below are NOT duplicated elsewhere in this file.
776776 for version parsing. Pin ` riddlcVersion ` in scripted tests
77777744 . ** sbt plugin visibility** — Use ` private[plugin] def ` to
778778 avoid "private method never used" in sbt plugins (Scala 2.12)
779+ 47 . ** Definition hashCode/equals override** — ` Definition ` trait
780+ overrides ` hashCode ` (cheap: id+loc+class) and ` equals `
781+ (structural but skips ` Contents ` fields via ` productEquals ` ).
782+ This prevents O(subtree) hashing in all ` HashMap[Definition,X] `
783+ operations. Opaque type ` Contents[?] ` erases to ` ArrayBuffer `
784+ at runtime, so ` case (_: Contents[?], ...) ` matches correctly
785+ 48 . ** TreePass uses Stack not HashMap** — ` mutable.Stack ` of
786+ ` ListBuffer[TreeNode] ` replaces ` Map[Definition, ListBuffer] `
787+ for pure O(n) tree building
788+ 49 . ** UsageResolution uses mutable.Set** — ` uses ` /` usedBy ` value
789+ types are ` mutable.Set[Definition] ` not ` Seq[Definition] ` .
790+ API boundary methods (` getUsers ` , ` getUses ` ) return ` .toSeq `
791+ 50 . ** MessageFlowEdge.messageType is Option[ Type] ** — Changed
792+ in 1.15.3. Adaptor declarations produce edges with ` None ` .
793+ JS facade returns ` "" ` for missing type. Consumers must use
794+ ` .map() ` /` .getOrElse() `
795+ 51 . ** MessageFlowPass direction-aware** — ` InboundAdaptor ` →
796+ producer=referent, consumer=source. ` OutboundAdaptor ` →
797+ producer=source, consumer=referent. Fixed in 1.15.3
798+ 52 . ** MessageFlowOutput scoping helpers** — ` edgesForDomain() `
799+ and ` edgesForContext() ` take ` SymbolsOutput ` parameter to
800+ walk parent chains
801+ 53 . ** EBNF TatSu syntax** — Use ` {rule}+ ` not ` rule+ ` for
802+ positive closure. TatSu requires curly braces around
803+ repeated elements
0 commit comments