Skip to content

Commit 0d66d6f

Browse files
committed
Fix conversion of dimension
`String tab @annot[] ` was converted to `String @annot tab @annot []`
1 parent e3c4a99 commit 0d66d6f

File tree

1 file changed

+3
-29
lines changed

1 file changed

+3
-29
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/core/dom/JavacConverter.java

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,26 +1177,7 @@ private FieldDeclaration convertFieldDeclaration(JCVariableDecl javac, ASTNode p
11771177
commonSettings(res, javac);
11781178
res.modifiers().addAll(convert(javac.getModifiers(), res));
11791179

1180-
Type resType = null;
1181-
int count = fragment.getExtraDimensions();
1182-
if( count > 0 ) {
1183-
// must do simple type here
1184-
JCTree t = javac.getType();
1185-
if( t instanceof JCArrayTypeTree jcatt) {
1186-
// unwrap the jcatt count times?
1187-
JCTree working = jcatt;
1188-
for( int i = 0; i < count; i++ ) {
1189-
if( working instanceof JCArrayTypeTree work2) {
1190-
working = work2.getType();
1191-
}
1192-
}
1193-
resType = convertToType(working);
1194-
} else {
1195-
resType = convertToType(javac.getType());
1196-
}
1197-
} else {
1198-
resType = convertToType(javac.getType());
1199-
}
1180+
Type resType = convertToType(unwrapDimensions(javac.getType(), fragment.getExtraDimensions()));
12001181
if (resType != null) {
12011182
res.setType(resType);
12021183
}
@@ -2376,15 +2357,8 @@ private Statement convertStatement(JCStatement javac, ASTNode parent) {
23762357
commonSettings(res, javac);
23772358

23782359
if (jcVariableDecl.vartype != null) {
2379-
if( jcVariableDecl.vartype instanceof JCArrayTypeTree jcatt) {
2380-
int extraDims = 0;
2381-
if(fragment.extraDimensions() != null && fragment.extraDimensions().size() > 0 ) {
2382-
extraDims = fragment.extraDimensions().size();
2383-
}
2384-
res.setType(convertToType(unwrapDimensions(jcatt, extraDims)));
2385-
} else {
2386-
res.setType(convertToType(findBaseType(jcVariableDecl.vartype)));
2387-
}
2360+
int fragmentDimensions = fragment.getExtraDimensions();
2361+
res.setType(convertToType(unwrapDimensions(jcVariableDecl.vartype, fragmentDimensions)));
23882362
} else if( jcVariableDecl.declaredUsingVar() ) {
23892363
SimpleType st = this.ast.newSimpleType(this.ast.newSimpleName("var"));
23902364
st.setSourceRange(javac.getStartPosition(), 3);

0 commit comments

Comments
 (0)