Skip to content

Serious compatibility problems with versions 5.9, 6.0 and 6.1 #505

@aunkrig

Description

@aunkrig

The values of the constants declared in "GeneratedJavaTokenTypes" have changed (for no obvious reason) in versions 5.9, 6.0 and 6.1. Any CS extension for versions up to and including 5.8 will most likely not function with versions 5.9, 6.0 and 6.1. After recompilation with these versions, they will (most probably) function, but no longer with versions 5.8 and older.

I will attach the "GeneratedJavaTokenTypes.java" source file for versions 5.6, 5.7, 5.8, 5.9, 6.0, 6.1 and 6.1.1 for reference.

The file is identical for versions 5.6, 5.7 and 5.8. I'd call that the "reference".

In version 5.9 three new tokens were inserted (METHOD_REF = 28, DOUBLE_COLON = 84 and LAMBDA = 181) and all the constants were "shifted up" respectively.

In version 6.0 the 7 token types 146...152 were replaced with 9 tokens 146...154: The 7 original tokens were renamed and reordered, and ML_COMMENT was replaced with BLOCK_COMMENT_BEGIN+BLOCK_COMMENT_END+COMMENT_CONTENT. Also 2 new tokens were added: SINGLE_LINE_COMMENT_CONTENT = 184 and BLOCK_COMMENT_CONTENT = 185.

In versions 6.1 and 6.1.1 the constant values remain constant, compared with version 6.0.

Because the constant values are compiled into any CS extension, it is next to impossible to write an extension that is compatible with two or more of the CS versions 5.8, 5.9 and 6.0.

I propose that the original value be resurrected as quickly as possible and the compatibility problem with versions 5.9, 6.0 and 6.1 be documented. WRT the huge user base, the impact should absolutely be kept as small as possible.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions