Skip to content

Commit 60cf7f4

Browse files
committed
removes support for j2s.compiler.quirks
1 parent 51c6069 commit 60cf7f4

File tree

4 files changed

+95
-106
lines changed

4 files changed

+95
-106
lines changed

sources/net.sf.j2s.core/src/net/sf/j2s/core/astvisitors/ASTKeywordVisitor.java

Lines changed: 89 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -97,18 +97,18 @@ public class ASTKeywordVisitor extends ASTEmptyVisitor {
9797

9898
protected int currentBlockForVisit = -1;
9999

100-
/**
101-
* This will be false unless j2s.compiler.static.quirks
102-
*/
103-
protected boolean supportsObjectStaticFields = false;
104-
105-
public boolean isSupportsObjectStaticFields() {
106-
return supportsObjectStaticFields;
107-
}
108-
109-
public void setSupportsObjectStaticFields(boolean supportsObjectStaticFields) {
110-
this.supportsObjectStaticFields = supportsObjectStaticFields;
111-
}
100+
// /**
101+
// * This will be false unless j2s.compiler.static.quirks
102+
// */
103+
// protected boolean supportsObjectStaticFields = false;
104+
//
105+
// public boolean isSupportsObjectStaticFields() {
106+
// return supportsObjectStaticFields;
107+
// }
108+
//
109+
// public void setSupportsObjectStaticFields(boolean supportsObjectStaticFields) {
110+
// this.supportsObjectStaticFields = supportsObjectStaticFields;
111+
// }
112112

113113
protected String assureQualifiedName(String name) {
114114
return ((ASTTypeVisitor) getAdaptable(ASTTypeVisitor.class)).assureQualifiedName(name);
@@ -252,7 +252,7 @@ public boolean visit(Assignment node) {
252252
// static variable = ...
253253

254254
ASTNode parent = node.getParent();
255-
boolean needParenthesis = (supportsObjectStaticFields || !haveDirectStaticAccess(left))
255+
boolean needParenthesis = (/*supportsObjectStaticFields ||*/ !haveDirectStaticAccess(left))
256256
&& !(parent instanceof Statement);
257257
if (needParenthesis) {
258258
buffer.append("(");
@@ -270,10 +270,10 @@ public boolean visit(Assignment node) {
270270
buffer.append(", ");
271271
}
272272
}
273-
if (supportsObjectStaticFields) {
274-
addFieldName(varBinding, left, true);
275-
buffer.append(" = ");
276-
}
273+
// if (supportsObjectStaticFields) {
274+
// addFieldName(varBinding, left, true);
275+
// buffer.append(" = ");
276+
// }
277277

278278
addFieldName(varBinding, left, false);
279279
buffer.append(' ');
@@ -493,11 +493,22 @@ public boolean visit(Assignment node) {
493493
return false;
494494
}
495495

496-
private boolean haveDirectStaticAccess(Expression exp) {
497-
return exp instanceof SimpleName
498-
|| (exp instanceof QualifiedName && ((QualifiedName) exp).getQualifier() instanceof SimpleName)
499-
|| (exp instanceof FieldAccess && ((FieldAccess) exp).getExpression() instanceof ThisExpression);
500-
496+
private void addFieldName(IVariableBinding varBinding, Expression left, boolean isPrototype) {
497+
buffer.append(
498+
assureQualifiedName(removeJavaLang(varBinding.getDeclaringClass().getQualifiedName())));
499+
buffer.append('.');
500+
if (isPrototype)
501+
buffer.append("prototype.");
502+
if (left instanceof QualifiedName) {
503+
QualifiedName leftName = (QualifiedName) left;
504+
leftName.getName().accept(this);
505+
} else if (left instanceof FieldAccess) {
506+
FieldAccess leftAccess = (FieldAccess) left;
507+
leftAccess.getName().accept(this);
508+
} else {
509+
Name leftName = (Name) left;
510+
leftName.accept(this);
511+
}
501512
}
502513

503514
public void endVisit(Block node) {
@@ -787,32 +798,6 @@ public boolean visit(ParenthesizedExpression node) {
787798
return false;
788799
}
789800

790-
public void endVisit(PostfixExpression node) {
791-
Expression left = node.getOperand();
792-
IVariableBinding varBinding = null;
793-
if (left instanceof Name) {
794-
Name leftName = (Name) left;
795-
IBinding nameBinding = leftName.resolveBinding();
796-
if (nameBinding instanceof IVariableBinding) {
797-
varBinding = (IVariableBinding) nameBinding;
798-
}
799-
} else if (left instanceof FieldAccess) {
800-
FieldAccess leftAccess = (FieldAccess) left;
801-
varBinding = leftAccess.resolveFieldBinding();
802-
}
803-
if (checkStaticBinding(varBinding)) {
804-
return;
805-
}
806-
ITypeBinding typeBinding = node.getOperand().resolveTypeBinding();
807-
if (typeBinding != null && typeBinding.isPrimitive()) {
808-
if ("char".equals(typeBinding.getName())) {
809-
return;
810-
}
811-
}
812-
buffer.append(node.getOperator());
813-
super.endVisit(node);
814-
}
815-
816801
public boolean visit(PostfixExpression node) {
817802
Expression left = node.getOperand();
818803
IVariableBinding varBinding = null;
@@ -831,7 +816,7 @@ public boolean visit(PostfixExpression node) {
831816
ASTNode parent = node.getParent();
832817
boolean staticCharType = typeBinding.isPrimitive() && "char".equals(typeBinding.getName());
833818
@SuppressWarnings("null")
834-
boolean needParenthesis = (supportsObjectStaticFields || !haveDirectStaticAccess(left)
819+
boolean needParenthesis = (/*supportsObjectStaticFields ||*/ !haveDirectStaticAccess(left)
835820
|| (typeBinding != null && staticCharType))
836821
&& !(parent instanceof Statement || parent instanceof ParenthesizedExpression);
837822
if (needParenthesis) {
@@ -850,7 +835,7 @@ public boolean visit(PostfixExpression node) {
850835
buffer.append(", ");
851836
}
852837
}
853-
if ((supportsObjectStaticFields || staticCharType) && !(parent instanceof Statement)) {
838+
if ((/*supportsObjectStaticFields ||*/ staticCharType) && !(parent instanceof Statement)) {
854839
buffer.append("$t$ = ");
855840
}
856841
String op = node.getOperator().toString();
@@ -868,13 +853,13 @@ public boolean visit(PostfixExpression node) {
868853
addFieldName(varBinding, left, false);
869854
buffer.append(op);
870855
}
871-
if (supportsObjectStaticFields) {
872-
buffer.append(", ");
873-
addFieldName(varBinding, left, true);
874-
buffer.append(" = ");
875-
addFieldName(varBinding, left, false);
876-
}
877-
if ((supportsObjectStaticFields || staticCharType) && !(parent instanceof Statement)) {
856+
// if (supportsObjectStaticFields) {
857+
// buffer.append(", ");
858+
// addFieldName(varBinding, left, true);
859+
// buffer.append(" = ");
860+
// addFieldName(varBinding, left, false);
861+
// }
862+
if ((/*supportsObjectStaticFields ||*/ staticCharType) && !(parent instanceof Statement)) {
878863
buffer.append(", $t$");
879864
}
880865
if (needParenthesis) {
@@ -916,22 +901,30 @@ private void addCharPlusPlus(String op) {
916901
buffer.append(".charCodeAt(0)").append("++".equals(op) ? "+1" : "-1");
917902
}
918903

919-
private void addFieldName(IVariableBinding varBinding, Expression left, boolean isPrototype) {
920-
buffer.append(
921-
assureQualifiedName(removeJavaLang(varBinding.getDeclaringClass().getQualifiedName())));
922-
buffer.append('.');
923-
if (isPrototype)
924-
buffer.append("prototype.");
925-
if (left instanceof QualifiedName) {
926-
QualifiedName leftName = (QualifiedName) left;
927-
leftName.getName().accept(this);
904+
public void endVisit(PostfixExpression node) {
905+
Expression left = node.getOperand();
906+
IVariableBinding varBinding = null;
907+
if (left instanceof Name) {
908+
Name leftName = (Name) left;
909+
IBinding nameBinding = leftName.resolveBinding();
910+
if (nameBinding instanceof IVariableBinding) {
911+
varBinding = (IVariableBinding) nameBinding;
912+
}
928913
} else if (left instanceof FieldAccess) {
929914
FieldAccess leftAccess = (FieldAccess) left;
930-
leftAccess.getName().accept(this);
931-
} else {
932-
Name leftName = (Name) left;
933-
leftName.accept(this);
915+
varBinding = leftAccess.resolveFieldBinding();
934916
}
917+
if (checkStaticBinding(varBinding)) {
918+
return;
919+
}
920+
ITypeBinding typeBinding = node.getOperand().resolveTypeBinding();
921+
if (typeBinding != null && typeBinding.isPrimitive()) {
922+
if ("char".equals(typeBinding.getName())) {
923+
return;
924+
}
925+
}
926+
buffer.append(node.getOperator());
927+
super.endVisit(node);
935928
}
936929

937930
@SuppressWarnings("null")
@@ -961,7 +954,7 @@ public boolean visit(PrefixExpression node) {
961954
ITypeBinding typeBinding = left.resolveTypeBinding();
962955
if (checkStaticBinding(varBinding)) {
963956
ASTNode parent = node.getParent();
964-
boolean needParenthesis = (supportsObjectStaticFields || !haveDirectStaticAccess(left)
957+
boolean needParenthesis = (/*supportsObjectStaticFields ||*/ !haveDirectStaticAccess(left)
965958
|| (typeBinding != null && typeBinding.isPrimitive() && "char".equals(typeBinding.getName())))
966959
&& !(parent instanceof Statement || parent instanceof ParenthesizedExpression);
967960
if (needParenthesis) {
@@ -988,21 +981,21 @@ public boolean visit(PrefixExpression node) {
988981
buffer.append(", ");
989982
}
990983
}
991-
if (supportsObjectStaticFields) {
992-
buffer.append(assureQualifiedName(removeJavaLang(varBinding.getDeclaringClass().getQualifiedName())));
993-
buffer.append(".prototype.");
994-
if (left instanceof QualifiedName) {
995-
QualifiedName leftName = (QualifiedName) left;
996-
leftName.getName().accept(this);
997-
} else if (left instanceof FieldAccess) {
998-
FieldAccess leftAccess = (FieldAccess) left;
999-
leftAccess.getName().accept(this);
1000-
} else {
1001-
Name leftName = (Name) left;
1002-
leftName.accept(this);
1003-
}
1004-
buffer.append(" = ");
1005-
}
984+
// if (supportsObjectStaticFields) {
985+
// buffer.append(assureQualifiedName(removeJavaLang(varBinding.getDeclaringClass().getQualifiedName())));
986+
// buffer.append(".prototype.");
987+
// if (left instanceof QualifiedName) {
988+
// QualifiedName leftName = (QualifiedName) left;
989+
// leftName.getName().accept(this);
990+
// } else if (left instanceof FieldAccess) {
991+
// FieldAccess leftAccess = (FieldAccess) left;
992+
// leftAccess.getName().accept(this);
993+
// } else {
994+
// Name leftName = (Name) left;
995+
// leftName.accept(this);
996+
// }
997+
// buffer.append(" = ");
998+
// }
1006999
if (typeBinding.isPrimitive() && "char".equals(typeBinding.getName())) {
10071000
buffer.append(assureQualifiedName(removeJavaLang(varBinding.getDeclaringClass().getQualifiedName())));
10081001
buffer.append('.');
@@ -1087,7 +1080,7 @@ public boolean visit(QualifiedName node) {
10871080
if (nameBinding instanceof IVariableBinding) {
10881081
varBinding = (IVariableBinding) nameBinding;
10891082
}
1090-
if (!supportsObjectStaticFields && checkStaticBinding(varBinding)) {
1083+
if (/*!supportsObjectStaticFields && */ checkStaticBinding(varBinding)) {
10911084
IBinding qBinding = node.getQualifier().resolveBinding();
10921085
if (!(qBinding != null && qBinding instanceof ITypeBinding)) {
10931086
staticFields = true;
@@ -1682,13 +1675,21 @@ protected static boolean isStatic(IBinding b) {
16821675
return b != null && Modifier.isStatic(b.getModifiers());
16831676
}
16841677

1685-
private boolean checkStaticBinding(IVariableBinding varBinding) {
1678+
protected boolean checkStaticBinding(IVariableBinding varBinding) {
16861679
ITypeBinding declaring;
16871680
String qName;
16881681
return isStatic(varBinding)
16891682
&& (declaring = varBinding.getDeclaringClass()) != null
16901683
&& !(qName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
16911684
&& !qName.startsWith("net.sf.j2s.html.");
16921685
}
1686+
1687+
private boolean haveDirectStaticAccess(Expression exp) {
1688+
return exp instanceof SimpleName
1689+
|| (exp instanceof QualifiedName && ((QualifiedName) exp).getQualifier() instanceof SimpleName)
1690+
|| (exp instanceof FieldAccess && ((FieldAccess) exp).getExpression() instanceof ThisExpression);
1691+
1692+
}
1693+
16931694

16941695
}

sources/net.sf.j2s.core/src/net/sf/j2s/core/astvisitors/ASTScriptVisitor.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ private void setInnerGLobals(ASTScriptVisitor parent, TypeDeclaration node) {
146146
rootTypeNode = node;
147147
methodOverloadingSupported = parent.methodOverloadingSupported;
148148
interfaceCastingSupported = parent.interfaceCastingSupported;
149-
supportsObjectStaticFields = parent.supportsObjectStaticFields;
149+
// supportsObjectStaticFields = parent.supportsObjectStaticFields;
150150
definedPackageNames = parent.definedPackageNames;
151151
setDebugging(parent.isDebugging());
152152
// BH abandoning all compiler variable name compressing -- Google Closure Compiler is way better
@@ -842,14 +842,8 @@ public boolean visit(FieldAccess node) {
842842
// Expression . Identifier
843843
// TODO: more complicated rules should be considered. read the JavaDoc
844844
IVariableBinding varBinding = node.resolveFieldBinding();
845-
ITypeBinding declaring;
846-
String qdName;
847845
Expression expression = node.getExpression();
848-
if (!supportsObjectStaticFields && varBinding != null && isStatic(varBinding)
849-
&& (declaring = varBinding.getDeclaringClass()) != null
850-
&& !(expression instanceof SimpleName || expression instanceof QualifiedName)
851-
&& !(qdName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
852-
&& !qdName.startsWith("net.sf.j2s.html.")) {
846+
if (checkStaticBinding(varBinding)) {
853847
buffer.append('(');
854848
expression.accept(this);
855849
buffer.append(", ");

sources/net.sf.j2s.core/src/net/sf/j2s/core/astvisitors/SWTScriptVisitor.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import java.util.Iterator;
1414
import java.util.List;
15+
1516
import org.eclipse.jdt.core.dom.ASTNode;
1617
import org.eclipse.jdt.core.dom.AnonymousClassDeclaration;
1718
import org.eclipse.jdt.core.dom.Block;
@@ -25,7 +26,6 @@
2526
import org.eclipse.jdt.core.dom.IfStatement;
2627
import org.eclipse.jdt.core.dom.MethodDeclaration;
2728
import org.eclipse.jdt.core.dom.MethodInvocation;
28-
import org.eclipse.jdt.core.dom.Modifier;
2929
import org.eclipse.jdt.core.dom.Name;
3030
import org.eclipse.jdt.core.dom.PrefixExpression;
3131
import org.eclipse.jdt.core.dom.QualifiedName;
@@ -133,13 +133,7 @@ public boolean visit(QualifiedName node) {
133133
if (nameBinding instanceof IVariableBinding) {
134134
varBinding = (IVariableBinding) nameBinding;
135135
}
136-
ITypeBinding declaring = null;
137-
String qdName = null;
138-
if (!supportsObjectStaticFields && varBinding != null
139-
&& (varBinding.getModifiers() & Modifier.STATIC) != 0
140-
&& (declaring = varBinding.getDeclaringClass()) != null
141-
&& !(qdName = declaring.getQualifiedName()).startsWith("org.eclipse.swt.internal.xhtml.")
142-
&& !qdName.startsWith("net.sf.j2s.html.")) {
136+
if (/*!supportsObjectStaticFields && */ checkStaticBinding(varBinding)) {
143137
IBinding qBinding = node.getQualifier().resolveBinding();
144138
if (!(qBinding != null && qBinding instanceof ITypeBinding)) {
145139
staticFields = true;

sources/net.sf.j2s.core/src/net/sf/j2s/core/compiler/Java2ScriptCompiler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ public void process(ICompilationUnit sourceUnit, IContainer binaryFolder) {
212212
visitor.setSupportsMethodOverloading(!ignoreMethodOverloading);
213213
boolean supportsInterfaceCasting = "enable".equals(getProperty(props, "j2s.compiler.interface.casting"));
214214
visitor.setSupportsInterfaceCasting(supportsInterfaceCasting);
215-
boolean objectStaticFields = "enable".equals(getProperty(props, "j2s.compiler.static.quirks"));
216-
visitor.setSupportsObjectStaticFields(objectStaticFields);
215+
//boolean objectStaticFields = "enable".equals(getProperty(props, "j2s.compiler.static.quirks"));
216+
//visitor.setSupportsObjectStaticFields(objectStaticFields);
217217
boolean isDebugging = "debug".equals(getProperty(props, "j2s.compiler.mode"));
218218
visitor.setDebugging(isDebugging);
219219
dvisitor.setDebugging(isDebugging);

0 commit comments

Comments
 (0)