@@ -1855,18 +1855,37 @@ public boolean visit(MethodInvocation node) {
18551855 buffer .append (", " );
18561856 }
18571857 boolean needBrackets = true ;
1858- //if (args.size() == 1) {
1858+
1859+ //sgurin: corrected bug when vararg parameter is an empty array.
1860+ if (args .size () == 0 ) {
1861+ if (needBrackets ) buffer .append ("[]" );
1862+ }
1863+ else {
18591864 Expression arg = (Expression ) args .get (args .size () - 1 );
18601865 ITypeBinding resolveTypeBinding = arg .resolveTypeBinding ();
1861- if (resolveTypeBinding != null && resolveTypeBinding .isArray ()) {
1862- needBrackets = false ;
1863- }
1864- //}
1865- if (needBrackets ) buffer .append ("[" );
1866- //IMethodBinding methodDeclaration = node.resolveMethodBinding();
1867- //visitMethodParameterList(node.arguments(), methodDeclaration, paramTypes.length - 1, size);
1868- visitList (args , ", " , paramTypes .length - 1 , size );
1869- if (needBrackets ) buffer .append ("]" );
1866+ if (resolveTypeBinding != null && resolveTypeBinding .isArray ())
1867+ needBrackets = false ;
1868+ if (needBrackets ) buffer .append ("[" );
1869+ visitList (args , ", " , paramTypes .length - 1 , size );
1870+ if (needBrackets ) buffer .append ("]" );
1871+ }
1872+
1873+ //old Code:
1874+ // //if (args.size() == 1) {
1875+ // Expression arg = (Expression) args.get(args.size() - 1);
1876+ // ITypeBinding resolveTypeBinding = arg.resolveTypeBinding();
1877+ // if (resolveTypeBinding != null && resolveTypeBinding.isArray()) {
1878+ // needBrackets = false;
1879+ // }
1880+ // //}
1881+ // if (needBrackets) buffer.append("[");
1882+ // //IMethodBinding methodDeclaration = node.resolveMethodBinding();
1883+ // //visitMethodParameterList(node.arguments(), methodDeclaration, paramTypes.length - 1, size);
1884+ // visitList(args, ", ", paramTypes.length - 1, size);
1885+ // if (needBrackets) buffer.append("]");
1886+
1887+
1888+
18701889 } else {
18711890 IMethodBinding methodDeclaration = node .resolveMethodBinding ();
18721891 visitMethodParameterList (node .arguments (), methodDeclaration );
0 commit comments