Subject: bug#14524: wisent-javascript-jv-wy--token-table multiple defaults for "no-type"

From: Glenn Morris <[email-masked]>
Date: Fri, 31 May 2013 19:52:38 -0400

Package: emacs
Version: 24.3
Severity: minor
User: emacs
Usertags: cedet

Part of the (generated?) code in cedet/semantic/wisent/js-wy.el for
wisent-javascript-jv-wy--token-table doesn't make sense. This part:

("<no-type>"
   (NULL_TOKEN)
   (QUERY)
   (TRUE)
   (FALSE))

is equivalent to:

("<no-type>" (FALSE))

It results in a warning on loading the file (and hence during bootstrap,
since other files require it):

*Warning* default value of <<no-type>> tokens changed to NULL_TOKEN, was QUERY
*Warning* default value of <<no-type>> tokens changed to QUERY, was TRUE
*Warning* default value of <<no-type>> tokens changed to TRUE, was FALSE

It seems that in the arguments of semantic-lex-make-type-table, there
can only be one TOKENS element per TYPE that has no MATCHER, which gets
used for the default. (BTW, this isn't mentioned at all in the doc-string
of semantic-lex-make-type-table AFAICS.)

Also, the warning message is backwards. It should be:

(message "*Warning* default value of <%s> tokens changed to %S, was %S"
    type token default)

ie, `token default' rather than `default token'.