In situations where multiple itemsets have the same kernel, it is possible for more than one of them to be weakly compatible with a goto set.  The item set generator always prefers the first (oldest) compatible item set when merging, and the same must be done when generating the action and goto tables.  Prior to this fix, actions for all compatible item sets were created, which could result in shift/shift conflicts (normally caught by an assertion failure). Similarly, goto table entries were created for all compatible item sets, which normally resulted in an assertion failure before overwriting the existing entry.
In situations where multiple itemsets have the same kernel, it is
possible for more than one of them to be weakly compatible with a
goto set.  The item set generator always prefers the first (oldest)
compatible item set when merging, and the same must be done when
generating the action and goto tables.  Prior to this fix, actions for
all compatible item sets were created, which could result in
shift/shift conflicts (normally caught by an assertion failure).
Similarly, goto table entries were created for all compatible item sets,
which normally resulted in an assertion failure before overwriting the
existing entry.

sprymix/parsing,enginekit/parsing