blob: 54b3f866aee6d6b935a9bde7e98947ec599cc736 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
// checkstyle: Checks Java source code for adherence to a set of rules.
// Copyright (C) 2001-2017 the original author or authors.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.grammars;
import org.junit.Assert;
import org.junit.Test;
/** @noinspection ClassIndependentOfModule */
public class GeneratedJavaTokenTypesTest {
/**
* <p>
* New tokens must be added onto the end of the list with new numbers, and
* old tokens must remain and keep their current numbering. Old token
* numberings are not allowed to change.
* </p>
* <p>
* The reason behind this is Java inlines static final field values directly
* into the compiled Java code. This loses all connections with the original
* class, GeneratedJavaTokenTypes, and so numbering updates are not picked
* up in user-created checks and causes conflicts.
* </p>
*
* Issue: https://github.com/checkstyle/checkstyle/issues/505
*/
@Test
public void testTokenNumbering() {
final String message = "A token's number has changed. Please open"
+ " 'GeneratedJavaTokenTypesTest' and confirm which token is at fault.\n"
+ "Token numbers must not change or else they will create a conflict"
+ " with users.\n\n"
+ "See Issue: https://github.com/checkstyle/checkstyle/issues/505";
// Read JavaDoc before changing
Assert.assertEquals(message, 1, GeneratedJavaTokenTypes.EOF);
Assert.assertEquals(message, 3, GeneratedJavaTokenTypes.NULL_TREE_LOOKAHEAD);
Assert.assertEquals(message, 4, GeneratedJavaTokenTypes.BLOCK);
Assert.assertEquals(message, 5, GeneratedJavaTokenTypes.MODIFIERS);
Assert.assertEquals(message, 6, GeneratedJavaTokenTypes.OBJBLOCK);
Assert.assertEquals(message, 7, GeneratedJavaTokenTypes.SLIST);
Assert.assertEquals(message, 8, GeneratedJavaTokenTypes.CTOR_DEF);
Assert.assertEquals(message, 9, GeneratedJavaTokenTypes.METHOD_DEF);
Assert.assertEquals(message, 10, GeneratedJavaTokenTypes.VARIABLE_DEF);
Assert.assertEquals(message, 11, GeneratedJavaTokenTypes.INSTANCE_INIT);
Assert.assertEquals(message, 12, GeneratedJavaTokenTypes.STATIC_INIT);
Assert.assertEquals(message, 13, GeneratedJavaTokenTypes.TYPE);
Assert.assertEquals(message, 14, GeneratedJavaTokenTypes.CLASS_DEF);
Assert.assertEquals(message, 15, GeneratedJavaTokenTypes.INTERFACE_DEF);
Assert.assertEquals(message, 16, GeneratedJavaTokenTypes.PACKAGE_DEF);
Assert.assertEquals(message, 17, GeneratedJavaTokenTypes.ARRAY_DECLARATOR);
Assert.assertEquals(message, 18, GeneratedJavaTokenTypes.EXTENDS_CLAUSE);
Assert.assertEquals(message, 19, GeneratedJavaTokenTypes.IMPLEMENTS_CLAUSE);
Assert.assertEquals(message, 20, GeneratedJavaTokenTypes.PARAMETERS);
Assert.assertEquals(message, 21, GeneratedJavaTokenTypes.PARAMETER_DEF);
Assert.assertEquals(message, 22, GeneratedJavaTokenTypes.LABELED_STAT);
Assert.assertEquals(message, 23, GeneratedJavaTokenTypes.TYPECAST);
Assert.assertEquals(message, 24, GeneratedJavaTokenTypes.INDEX_OP);
Assert.assertEquals(message, 25, GeneratedJavaTokenTypes.POST_INC);
Assert.assertEquals(message, 26, GeneratedJavaTokenTypes.POST_DEC);
Assert.assertEquals(message, 27, GeneratedJavaTokenTypes.METHOD_CALL);
Assert.assertEquals(message, 28, GeneratedJavaTokenTypes.EXPR);
Assert.assertEquals(message, 29, GeneratedJavaTokenTypes.ARRAY_INIT);
Assert.assertEquals(message, 30, GeneratedJavaTokenTypes.IMPORT);
Assert.assertEquals(message, 31, GeneratedJavaTokenTypes.UNARY_MINUS);
Assert.assertEquals(message, 32, GeneratedJavaTokenTypes.UNARY_PLUS);
Assert.assertEquals(message, 33, GeneratedJavaTokenTypes.CASE_GROUP);
Assert.assertEquals(message, 34, GeneratedJavaTokenTypes.ELIST);
Assert.assertEquals(message, 35, GeneratedJavaTokenTypes.FOR_INIT);
Assert.assertEquals(message, 36, GeneratedJavaTokenTypes.FOR_CONDITION);
Assert.assertEquals(message, 37, GeneratedJavaTokenTypes.FOR_ITERATOR);
Assert.assertEquals(message, 38, GeneratedJavaTokenTypes.EMPTY_STAT);
Assert.assertEquals(message, 39, GeneratedJavaTokenTypes.FINAL);
Assert.assertEquals(message, 40, GeneratedJavaTokenTypes.ABSTRACT);
Assert.assertEquals(message, 41, GeneratedJavaTokenTypes.STRICTFP);
Assert.assertEquals(message, 42, GeneratedJavaTokenTypes.SUPER_CTOR_CALL);
Assert.assertEquals(message, 43, GeneratedJavaTokenTypes.CTOR_CALL);
Assert.assertEquals(message, 44, GeneratedJavaTokenTypes.LITERAL_package);
Assert.assertEquals(message, 45, GeneratedJavaTokenTypes.SEMI);
Assert.assertEquals(message, 46, GeneratedJavaTokenTypes.LITERAL_import);
Assert.assertEquals(message, 47, GeneratedJavaTokenTypes.LBRACK);
Assert.assertEquals(message, 48, GeneratedJavaTokenTypes.RBRACK);
Assert.assertEquals(message, 49, GeneratedJavaTokenTypes.LITERAL_void);
Assert.assertEquals(message, 50, GeneratedJavaTokenTypes.LITERAL_boolean);
Assert.assertEquals(message, 51, GeneratedJavaTokenTypes.LITERAL_byte);
Assert.assertEquals(message, 52, GeneratedJavaTokenTypes.LITERAL_char);
Assert.assertEquals(message, 53, GeneratedJavaTokenTypes.LITERAL_short);
Assert.assertEquals(message, 54, GeneratedJavaTokenTypes.LITERAL_int);
Assert.assertEquals(message, 55, GeneratedJavaTokenTypes.LITERAL_float);
Assert.assertEquals(message, 56, GeneratedJavaTokenTypes.LITERAL_long);
Assert.assertEquals(message, 57, GeneratedJavaTokenTypes.LITERAL_double);
Assert.assertEquals(message, 58, GeneratedJavaTokenTypes.IDENT);
Assert.assertEquals(message, 59, GeneratedJavaTokenTypes.DOT);
Assert.assertEquals(message, 60, GeneratedJavaTokenTypes.STAR);
Assert.assertEquals(message, 61, GeneratedJavaTokenTypes.LITERAL_private);
Assert.assertEquals(message, 62, GeneratedJavaTokenTypes.LITERAL_public);
Assert.assertEquals(message, 63, GeneratedJavaTokenTypes.LITERAL_protected);
Assert.assertEquals(message, 64, GeneratedJavaTokenTypes.LITERAL_static);
Assert.assertEquals(message, 65, GeneratedJavaTokenTypes.LITERAL_transient);
Assert.assertEquals(message, 66, GeneratedJavaTokenTypes.LITERAL_native);
Assert.assertEquals(message, 67, GeneratedJavaTokenTypes.LITERAL_synchronized);
Assert.assertEquals(message, 68, GeneratedJavaTokenTypes.LITERAL_volatile);
Assert.assertEquals(message, 69, GeneratedJavaTokenTypes.LITERAL_class);
Assert.assertEquals(message, 70, GeneratedJavaTokenTypes.LITERAL_extends);
Assert.assertEquals(message, 71, GeneratedJavaTokenTypes.LITERAL_interface);
Assert.assertEquals(message, 72, GeneratedJavaTokenTypes.LCURLY);
Assert.assertEquals(message, 73, GeneratedJavaTokenTypes.RCURLY);
Assert.assertEquals(message, 74, GeneratedJavaTokenTypes.COMMA);
Assert.assertEquals(message, 75, GeneratedJavaTokenTypes.LITERAL_implements);
Assert.assertEquals(message, 76, GeneratedJavaTokenTypes.LPAREN);
Assert.assertEquals(message, 77, GeneratedJavaTokenTypes.RPAREN);
Assert.assertEquals(message, 78, GeneratedJavaTokenTypes.LITERAL_this);
Assert.assertEquals(message, 79, GeneratedJavaTokenTypes.LITERAL_super);
Assert.assertEquals(message, 80, GeneratedJavaTokenTypes.ASSIGN);
Assert.assertEquals(message, 81, GeneratedJavaTokenTypes.LITERAL_throws);
Assert.assertEquals(message, 82, GeneratedJavaTokenTypes.COLON);
Assert.assertEquals(message, 83, GeneratedJavaTokenTypes.LITERAL_if);
Assert.assertEquals(message, 84, GeneratedJavaTokenTypes.LITERAL_while);
Assert.assertEquals(message, 85, GeneratedJavaTokenTypes.LITERAL_do);
Assert.assertEquals(message, 86, GeneratedJavaTokenTypes.LITERAL_break);
Assert.assertEquals(message, 87, GeneratedJavaTokenTypes.LITERAL_continue);
Assert.assertEquals(message, 88, GeneratedJavaTokenTypes.LITERAL_return);
Assert.assertEquals(message, 89, GeneratedJavaTokenTypes.LITERAL_switch);
Assert.assertEquals(message, 90, GeneratedJavaTokenTypes.LITERAL_throw);
Assert.assertEquals(message, 91, GeneratedJavaTokenTypes.LITERAL_for);
Assert.assertEquals(message, 92, GeneratedJavaTokenTypes.LITERAL_else);
Assert.assertEquals(message, 93, GeneratedJavaTokenTypes.LITERAL_case);
Assert.assertEquals(message, 94, GeneratedJavaTokenTypes.LITERAL_default);
Assert.assertEquals(message, 95, GeneratedJavaTokenTypes.LITERAL_try);
Assert.assertEquals(message, 96, GeneratedJavaTokenTypes.LITERAL_catch);
Assert.assertEquals(message, 97, GeneratedJavaTokenTypes.LITERAL_finally);
Assert.assertEquals(message, 98, GeneratedJavaTokenTypes.PLUS_ASSIGN);
Assert.assertEquals(message, 99, GeneratedJavaTokenTypes.MINUS_ASSIGN);
Assert.assertEquals(message, 100, GeneratedJavaTokenTypes.STAR_ASSIGN);
Assert.assertEquals(message, 101, GeneratedJavaTokenTypes.DIV_ASSIGN);
Assert.assertEquals(message, 102, GeneratedJavaTokenTypes.MOD_ASSIGN);
Assert.assertEquals(message, 103, GeneratedJavaTokenTypes.SR_ASSIGN);
Assert.assertEquals(message, 104, GeneratedJavaTokenTypes.BSR_ASSIGN);
Assert.assertEquals(message, 105, GeneratedJavaTokenTypes.SL_ASSIGN);
Assert.assertEquals(message, 106, GeneratedJavaTokenTypes.BAND_ASSIGN);
Assert.assertEquals(message, 107, GeneratedJavaTokenTypes.BXOR_ASSIGN);
Assert.assertEquals(message, 108, GeneratedJavaTokenTypes.BOR_ASSIGN);
Assert.assertEquals(message, 109, GeneratedJavaTokenTypes.QUESTION);
Assert.assertEquals(message, 110, GeneratedJavaTokenTypes.LOR);
Assert.assertEquals(message, 111, GeneratedJavaTokenTypes.LAND);
Assert.assertEquals(message, 112, GeneratedJavaTokenTypes.BOR);
Assert.assertEquals(message, 113, GeneratedJavaTokenTypes.BXOR);
Assert.assertEquals(message, 114, GeneratedJavaTokenTypes.BAND);
Assert.assertEquals(message, 115, GeneratedJavaTokenTypes.NOT_EQUAL);
Assert.assertEquals(message, 116, GeneratedJavaTokenTypes.EQUAL);
Assert.assertEquals(message, 117, GeneratedJavaTokenTypes.LT);
Assert.assertEquals(message, 118, GeneratedJavaTokenTypes.GT);
Assert.assertEquals(message, 119, GeneratedJavaTokenTypes.LE);
Assert.assertEquals(message, 120, GeneratedJavaTokenTypes.GE);
Assert.assertEquals(message, 121, GeneratedJavaTokenTypes.LITERAL_instanceof);
Assert.assertEquals(message, 122, GeneratedJavaTokenTypes.SL);
Assert.assertEquals(message, 123, GeneratedJavaTokenTypes.SR);
Assert.assertEquals(message, 124, GeneratedJavaTokenTypes.BSR);
Assert.assertEquals(message, 125, GeneratedJavaTokenTypes.PLUS);
Assert.assertEquals(message, 126, GeneratedJavaTokenTypes.MINUS);
Assert.assertEquals(message, 127, GeneratedJavaTokenTypes.DIV);
Assert.assertEquals(message, 128, GeneratedJavaTokenTypes.MOD);
Assert.assertEquals(message, 129, GeneratedJavaTokenTypes.INC);
Assert.assertEquals(message, 130, GeneratedJavaTokenTypes.DEC);
Assert.assertEquals(message, 131, GeneratedJavaTokenTypes.BNOT);
Assert.assertEquals(message, 132, GeneratedJavaTokenTypes.LNOT);
Assert.assertEquals(message, 133, GeneratedJavaTokenTypes.LITERAL_true);
Assert.assertEquals(message, 134, GeneratedJavaTokenTypes.LITERAL_false);
Assert.assertEquals(message, 135, GeneratedJavaTokenTypes.LITERAL_null);
Assert.assertEquals(message, 136, GeneratedJavaTokenTypes.LITERAL_new);
Assert.assertEquals(message, 137, GeneratedJavaTokenTypes.NUM_INT);
Assert.assertEquals(message, 138, GeneratedJavaTokenTypes.CHAR_LITERAL);
Assert.assertEquals(message, 139, GeneratedJavaTokenTypes.STRING_LITERAL);
Assert.assertEquals(message, 140, GeneratedJavaTokenTypes.NUM_FLOAT);
Assert.assertEquals(message, 141, GeneratedJavaTokenTypes.NUM_LONG);
Assert.assertEquals(message, 142, GeneratedJavaTokenTypes.NUM_DOUBLE);
Assert.assertEquals(message, 143, GeneratedJavaTokenTypes.WS);
Assert.assertEquals(message, 144, GeneratedJavaTokenTypes.SINGLE_LINE_COMMENT);
Assert.assertEquals(message, 145, GeneratedJavaTokenTypes.BLOCK_COMMENT_BEGIN);
Assert.assertEquals(message, 146, GeneratedJavaTokenTypes.ESC);
Assert.assertEquals(message, 147, GeneratedJavaTokenTypes.HEX_DIGIT);
Assert.assertEquals(message, 148, GeneratedJavaTokenTypes.VOCAB);
Assert.assertEquals(message, 149, GeneratedJavaTokenTypes.EXPONENT);
Assert.assertEquals(message, 150, GeneratedJavaTokenTypes.FLOAT_SUFFIX);
Assert.assertEquals(message, 151, GeneratedJavaTokenTypes.ASSERT);
Assert.assertEquals(message, 152, GeneratedJavaTokenTypes.STATIC_IMPORT);
Assert.assertEquals(message, 153, GeneratedJavaTokenTypes.ENUM);
Assert.assertEquals(message, 154, GeneratedJavaTokenTypes.ENUM_DEF);
Assert.assertEquals(message, 155, GeneratedJavaTokenTypes.ENUM_CONSTANT_DEF);
Assert.assertEquals(message, 156, GeneratedJavaTokenTypes.FOR_EACH_CLAUSE);
Assert.assertEquals(message, 157, GeneratedJavaTokenTypes.ANNOTATION_DEF);
Assert.assertEquals(message, 158, GeneratedJavaTokenTypes.ANNOTATIONS);
Assert.assertEquals(message, 159, GeneratedJavaTokenTypes.ANNOTATION);
Assert.assertEquals(message, 160, GeneratedJavaTokenTypes.ANNOTATION_MEMBER_VALUE_PAIR);
Assert.assertEquals(message, 161, GeneratedJavaTokenTypes.ANNOTATION_FIELD_DEF);
Assert.assertEquals(message, 162, GeneratedJavaTokenTypes.ANNOTATION_ARRAY_INIT);
Assert.assertEquals(message, 163, GeneratedJavaTokenTypes.TYPE_ARGUMENTS);
Assert.assertEquals(message, 164, GeneratedJavaTokenTypes.TYPE_ARGUMENT);
Assert.assertEquals(message, 165, GeneratedJavaTokenTypes.TYPE_PARAMETERS);
Assert.assertEquals(message, 166, GeneratedJavaTokenTypes.TYPE_PARAMETER);
Assert.assertEquals(message, 167, GeneratedJavaTokenTypes.WILDCARD_TYPE);
Assert.assertEquals(message, 168, GeneratedJavaTokenTypes.TYPE_UPPER_BOUNDS);
Assert.assertEquals(message, 169, GeneratedJavaTokenTypes.TYPE_LOWER_BOUNDS);
Assert.assertEquals(message, 170, GeneratedJavaTokenTypes.AT);
Assert.assertEquals(message, 171, GeneratedJavaTokenTypes.ELLIPSIS);
Assert.assertEquals(message, 172, GeneratedJavaTokenTypes.GENERIC_START);
Assert.assertEquals(message, 173, GeneratedJavaTokenTypes.GENERIC_END);
Assert.assertEquals(message, 174, GeneratedJavaTokenTypes.TYPE_EXTENSION_AND);
Assert.assertEquals(message, 175, GeneratedJavaTokenTypes.DO_WHILE);
Assert.assertEquals(message, 176, GeneratedJavaTokenTypes.RESOURCE_SPECIFICATION);
Assert.assertEquals(message, 177, GeneratedJavaTokenTypes.RESOURCES);
Assert.assertEquals(message, 178, GeneratedJavaTokenTypes.RESOURCE);
Assert.assertEquals(message, 179, GeneratedJavaTokenTypes.DOUBLE_COLON);
Assert.assertEquals(message, 180, GeneratedJavaTokenTypes.METHOD_REF);
Assert.assertEquals(message, 181, GeneratedJavaTokenTypes.LAMBDA);
Assert.assertEquals(message, 182, GeneratedJavaTokenTypes.BLOCK_COMMENT_END);
Assert.assertEquals(message, 183, GeneratedJavaTokenTypes.COMMENT_CONTENT);
Assert.assertEquals(message, 184, GeneratedJavaTokenTypes.SINGLE_LINE_COMMENT_CONTENT);
Assert.assertEquals(message, 185, GeneratedJavaTokenTypes.BLOCK_COMMENT_CONTENT);
Assert.assertEquals(message, 186, GeneratedJavaTokenTypes.STD_ESC);
Assert.assertEquals(message, 187, GeneratedJavaTokenTypes.BINARY_DIGIT);
Assert.assertEquals(message, 188, GeneratedJavaTokenTypes.ID_START);
Assert.assertEquals(message, 189, GeneratedJavaTokenTypes.ID_PART);
Assert.assertEquals(message, 190, GeneratedJavaTokenTypes.INT_LITERAL);
Assert.assertEquals(message, 191, GeneratedJavaTokenTypes.LONG_LITERAL);
Assert.assertEquals(message, 192, GeneratedJavaTokenTypes.FLOAT_LITERAL);
Assert.assertEquals(message, 193, GeneratedJavaTokenTypes.DOUBLE_LITERAL);
Assert.assertEquals(message, 194, GeneratedJavaTokenTypes.HEX_FLOAT_LITERAL);
Assert.assertEquals(message, 195, GeneratedJavaTokenTypes.HEX_DOUBLE_LITERAL);
Assert.assertEquals(message, 196, GeneratedJavaTokenTypes.SIGNED_INTEGER);
Assert.assertEquals(message, 197, GeneratedJavaTokenTypes.BINARY_EXPONENT);
// Read JavaDoc before changing
Assert.assertEquals("all tokens must be added to list in"
+ " 'GeneratedJavaTokenTypesTest' and verified"
+ " that their old numbering didn't change", 196,
GeneratedJavaTokenTypes.class.getDeclaredFields().length);
}
}