Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VaniallaPartialReparser reports incorrectly reparsed files #3286

Merged
merged 1 commit into from Nov 3, 2021

Conversation

matthiasblaesing
Copy link
Contributor

The verification step of the VanillaPartialReparser serialises the
reparsed tree to a string and comparse these. The issue is, that the
toString result of a CapturedType contains the sequence
"capture#NUMBER". Number is the hashCode of the mirror. As hashCode
is not overwriten, this is more or less a random number and thus
meaningless for the tree comparisson leading to invalid incorrect
partial reparsing reports

This normalises it to a plain capture.

The verification step of the VanillaPartialReparser serialises the
reparsed tree to a string and comparse these. The issue is, that the
toString result of a CapturedType contains the sequence
"capture#NUMBER". Number is the hashCode of the mirror. As hashCode
is not overwriten, this is more or less a random number and thus
meaningless for the tree comparisson leading to invalid incorrect
partial reparsing reports

This normalises it to a plain capture.
@matthiasblaesing
Copy link
Contributor Author

This is the observed error report:

----- Errors: ---------------------------------------------
Expected tree: COMPILATION_UNIT:724:1336:com.sun.jna:null:,PACKAGE:724:744:com.sun.jna:null:,MEMBER_SELECT:732:743:com.sun.jna:com.sun.jna:,MEMBER_SELECT:732:739:com.sun:com.sun:,IDENTIFIER:732:735:com:com:,IMPORT:746:778:null:null:,MEMBER_SELECT:753:777:java.lang.reflect.Method:java.lang.reflect.Method:,MEMBER_SELECT:753:770:java.lang.reflect:java.lang.reflect:,MEMBER_SELECT:753:762:java.lang:java.lang:,IDENTIFIER:753:757:java:java:,CLASS:850:1336:com.sun.jna.CallbackParameterContext:com.sun.jna.CallbackParameterContext:,MODIFIERS:850:856:null:null:,IDENTIFIER:896:913:com.sun.jna.FromNativeContext:com.sun.jna.FromNativeContext:,VARIABLE:920:942:method:java.lang.reflect.Method:,MODIFIERS:920:927:null:null:,IDENTIFIER:928:934:java.lang.reflect.Method:java.lang.reflect.Method:,null,null,VARIABLE:947:969:args:java.lang.Object[]:,MODIFIERS:947:954:null:null:,ARRAY_TYPE:955:963:null:java.lang.Object[]:,IDENTIFIER:955:961:java.lang.Object:java.lang.Object:,null,null,VARIABLE:974:992:index:int:,MODIFIERS:974:981:null:null:,PRIMITIVE_TYPE:982:985:null:int:,null,null,METHOD:997:1188:CallbackParameterContext(java.lang.Class<?>,java.lang.reflect.Method,java.lang.Object[],int):(java.lang.Class<?>,java.lang.reflect.Method,java.lang.Object[],int)void:,MODIFIERS:-1:-1:null:null:,null,VARIABLE:1022:1039:javaType:java.lang.Class<?>:,MODIFIERS:-1:-1:null:null:,PARAMETERIZED_TYPE:1022:1030:java.lang.Class:java.lang.Class<?>:,IDENTIFIER:1022:1027:java.lang.Class:java.lang.Class:,UNBOUNDED_WILDCARD:1028:1029:null:?:,null,null,null,VARIABLE:1041:1049:m:java.lang.reflect.Method:,MODIFIERS:-1:-1:null:null:,IDENTIFIER:1041:1047:java.lang.reflect.Method:java.lang.reflect.Method:,null,null,VARIABLE:1051:1064:args:java.lang.Object[]:,MODIFIERS:-1:-1:null:null:,ARRAY_TYPE:1051:1059:null:java.lang.Object[]:,IDENTIFIER:1051:1057:java.lang.Object:java.lang.Object:,null,null,VARIABLE:1066:1075:index:int:,MODIFIERS:-1:-1:null:null:,PRIMITIVE_TYPE:1066:1069:null:int:,null,null,null,BLOCK:1077:1188:null:null:,EXPRESSION_STATEMENT:1087:1103:null:null:,METHOD_INVOCATION:1087:1102:FromNativeContext(java.lang.Class<?>):void:,IDENTIFIER:1087:1092:FromNativeContext(java.lang.Class<?>):(java.lang.Class<?>)void:,IDENTIFIER:1093:1101:javaType:java.lang.Class<capture#79 of ?>:,EXPRESSION_STATEMENT:1112:1128:null:null:,ASSIGNMENT:1112:1127:null:java.lang.reflect.Method:,MEMBER_SELECT:1112:1123:method:java.lang.reflect.Method:,IDENTIFIER:1112:1116:this:com.sun.jna.CallbackParameterContext:,IDENTIFIER:1126:1127:m:java.lang.reflect.Method:,EXPRESSION_STATEMENT:1137:1154:null:null:,ASSIGNMENT:1137:1153:null:java.lang.Object[]:,MEMBER_SELECT:1137:1146:args:java.lang.Object[]:,IDENTIFIER:1137:1141:this:com.sun.jna.CallbackParameterContext:,IDENTIFIER:1149:1153:args:java.lang.Object[]:,EXPRESSION_STATEMENT:1163:1182:null:null:,ASSIGNMENT:1163:1181:null:int:,MEMBER_SELECT:1163:1173:index:int:,IDENTIFIER:1163:1167:this:com.sun.jna.CallbackParameterContext:,IDENTIFIER:1176:1181:index:int:,null,METHOD:1193:1238:getMethod():()java.lang.reflect.Method:,MODIFIERS:1193:1199:null:null:,IDENTIFIER:1200:1206:java.lang.reflect.Method:java.lang.reflect.Method:,null,BLOCK:1219:1238:null:null:,RETURN:1222:1236:null:null:,IDENTIFIER:1229:1235:method:java.lang.reflect.Method:,null,METHOD:1243:1290:getArguments():()java.lang.Object[]:,MODIFIERS:1243:1249:null:null:,ARRAY_TYPE:1250:1258:null:java.lang.Object[]:,IDENTIFIER:1250:1256:java.lang.Object:java.lang.Object:,null,BLOCK:1274:1290:null:null:,RETURN:1276:1288:null:null:,IDENTIFIER:1283:1287:args:java.lang.Object[]:,null,METHOD:1295:1334:getIndex():()int:,MODIFIERS:1295:1301:null:null:,PRIMITIVE_TYPE:1302:1305:null:int:,null,BLOCK:1317:1334:null:null:,RETURN:1319:1332:null:null:,IDENTIFIER:1326:1331:index:int:,null,null,
  actual tree: COMPILATION_UNIT:724:1336:com.sun.jna:null:,PACKAGE:724:744:com.sun.jna:null:,MEMBER_SELECT:732:743:com.sun.jna:com.sun.jna:,MEMBER_SELECT:732:739:com.sun:com.sun:,IDENTIFIER:732:735:com:com:,IMPORT:746:778:null:null:,MEMBER_SELECT:753:777:java.lang.reflect.Method:java.lang.reflect.Method:,MEMBER_SELECT:753:770:java.lang.reflect:java.lang.reflect:,MEMBER_SELECT:753:762:java.lang:java.lang:,IDENTIFIER:753:757:java:java:,CLASS:850:1336:com.sun.jna.CallbackParameterContext:com.sun.jna.CallbackParameterContext:,MODIFIERS:850:856:null:null:,IDENTIFIER:896:913:com.sun.jna.FromNativeContext:com.sun.jna.FromNativeContext:,VARIABLE:920:942:method:java.lang.reflect.Method:,MODIFIERS:920:927:null:null:,IDENTIFIER:928:934:java.lang.reflect.Method:java.lang.reflect.Method:,null,null,VARIABLE:947:969:args:java.lang.Object[]:,MODIFIERS:947:954:null:null:,ARRAY_TYPE:955:963:null:java.lang.Object[]:,IDENTIFIER:955:961:java.lang.Object:java.lang.Object:,null,null,VARIABLE:974:992:index:int:,MODIFIERS:974:981:null:null:,PRIMITIVE_TYPE:982:985:null:int:,null,null,METHOD:997:1188:CallbackParameterContext(java.lang.Class<?>,java.lang.reflect.Method,java.lang.Object[],int):(java.lang.Class<?>,java.lang.reflect.Method,java.lang.Object[],int)void:,MODIFIERS:-1:-1:null:null:,null,VARIABLE:1022:1039:javaType:java.lang.Class<?>:,MODIFIERS:-1:-1:null:null:,PARAMETERIZED_TYPE:1022:1030:java.lang.Class:java.lang.Class<?>:,IDENTIFIER:1022:1027:java.lang.Class:java.lang.Class:,UNBOUNDED_WILDCARD:1028:1029:null:?:,null,null,null,VARIABLE:1041:1049:m:java.lang.reflect.Method:,MODIFIERS:-1:-1:null:null:,IDENTIFIER:1041:1047:java.lang.reflect.Method:java.lang.reflect.Method:,null,null,VARIABLE:1051:1064:args:java.lang.Object[]:,MODIFIERS:-1:-1:null:null:,ARRAY_TYPE:1051:1059:null:java.lang.Object[]:,IDENTIFIER:1051:1057:java.lang.Object:java.lang.Object:,null,null,VARIABLE:1066:1075:index:int:,MODIFIERS:-1:-1:null:null:,PRIMITIVE_TYPE:1066:1069:null:int:,null,null,null,BLOCK:1077:1188:null:null:,EXPRESSION_STATEMENT:1087:1103:null:null:,METHOD_INVOCATION:1087:1102:FromNativeContext(java.lang.Class<?>):void:,IDENTIFIER:1087:1092:FromNativeContext(java.lang.Class<?>):(java.lang.Class<?>)void:,IDENTIFIER:1093:1101:javaType:java.lang.Class<capture#967 of ?>:,EXPRESSION_STATEMENT:1112:1128:null:null:,ASSIGNMENT:1112:1127:null:java.lang.reflect.Method:,MEMBER_SELECT:1112:1123:method:java.lang.reflect.Method:,IDENTIFIER:1112:1116:this:com.sun.jna.CallbackParameterContext:,IDENTIFIER:1126:1127:m:java.lang.reflect.Method:,EXPRESSION_STATEMENT:1137:1154:null:null:,ASSIGNMENT:1137:1153:null:java.lang.Object[]:,MEMBER_SELECT:1137:1146:args:java.lang.Object[]:,IDENTIFIER:1137:1141:this:com.sun.jna.CallbackParameterContext:,IDENTIFIER:1149:1153:args:java.lang.Object[]:,EXPRESSION_STATEMENT:1163:1182:null:null:,ASSIGNMENT:1163:1181:null:int:,MEMBER_SELECT:1163:1173:index:int:,IDENTIFIER:1163:1167:this:com.sun.jna.CallbackParameterContext:,IDENTIFIER:1176:1181:index:int:,null,METHOD:1193:1238:getMethod():()java.lang.reflect.Method:,MODIFIERS:1193:1199:null:null:,IDENTIFIER:1200:1206:java.lang.reflect.Method:java.lang.reflect.Method:,null,BLOCK:1219:1238:null:null:,RETURN:1222:1236:null:null:,IDENTIFIER:1229:1235:method:java.lang.reflect.Method:,null,METHOD:1243:1290:getArguments():()java.lang.Object[]:,MODIFIERS:1243:1249:null:null:,ARRAY_TYPE:1250:1258:null:java.lang.Object[]:,IDENTIFIER:1250:1256:java.lang.Object:java.lang.Object:,null,BLOCK:1274:1290:null:null:,RETURN:1276:1288:null:null:,IDENTIFIER:1283:1287:args:java.lang.Object[]:,null,METHOD:1295:1334:getIndex():()int:,MODIFIERS:1295:1301:null:null:,PRIMITIVE_TYPE:1302:1305:null:int:,null,BLOCK:1317:1334:null:null:,RETURN:1319:1332:null:null:,IDENTIFIER:1326:1331:index:int:,null,null,

@jlahoda could you please have a look?

Copy link
Contributor

@jlahoda jlahoda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice. Looks sensible. Sorry for trouble, and thanks for fixing!

@matthiasblaesing
Copy link
Contributor Author

Thank you for the review @jlahoda!

@matthiasblaesing matthiasblaesing merged commit b66d00e into apache:master Nov 3, 2021
@matthiasblaesing matthiasblaesing deleted the vanilla_reparser branch November 5, 2021 17:37
@matthiasblaesing matthiasblaesing added this to the NB13 milestone Nov 6, 2021
@junichi11 junichi11 added the Java [ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form) label Nov 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Java [ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants