Skip to content
This repository was archived by the owner on Mar 8, 2020. It is now read-only.

Commit b62c747

Browse files
committed
support old style array types; fixes #136
Signed-off-by: Denys Smirnov <denis.smirnov.91@gmail.com>
1 parent 83cf660 commit b62c747

File tree

5 files changed

+1248
-4
lines changed

5 files changed

+1248
-4
lines changed

driver/normalizer/normalizer.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ var Normalizers = []Mapping{
149149
"parameters": Each("args", Fields{
150150
{Name: uast.KeyType, Op: String("SingleVariableDeclaration")},
151151
{Name: uast.KeyPos, Op: Var("apos")},
152-
{Name: "extraDimensions2", Op: Is(nil)},
152+
{Name: "extraDimensions2", Op: Cases("old_arr", Is(nil), Var("dims2"))},
153153
{Name: "initializer", Op: Var("ainit")},
154154
{Name: "modifiers", Op: Any(), Drop: true}, // FIXME: preserve this array
155155
{Name: "name", Op: Var("aname")},
@@ -270,7 +270,17 @@ var Normalizers = []Mapping{
270270
var argsPart = Each("args", UASTType(uast.Argument{}, Obj{
271271
uast.KeyPos: Var("apos"),
272272
"Name": Var("aname"),
273-
"Type": Var("atype"),
274-
"Init": Var("ainit"),
275-
"Variadic": Cases("varg", Bool(false), Bool(true)),
273+
"Type": Cases("old_arr",
274+
// case 1: new style (int[] a)
275+
Var("atype"),
276+
// case 2: old style (int a[]) - synthesize array type
277+
Obj{
278+
uast.KeyType: String("ArrayType"),
279+
uast.KeyPos: Obj{},
280+
"dimensions": Var("dims2"),
281+
"elementType": Var("atype"),
282+
},
283+
),
284+
"Init": Var("ainit"),
285+
"Variadic": Cases("varg", Bool(false), Bool(true)),
276286
}))

fixtures/u2_func_old.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Testcls1 {
2+
public void func1(String arg[]) {
3+
4+
}
5+
public void func2(String[] arg) {
6+
7+
}
8+
}

0 commit comments

Comments
 (0)