JS: made JsPropertyInitializer fields not nullable

This commit is contained in:
Alexey Tsvetkov
2015-02-19 14:39:55 +03:00
parent 53dfd77d31
commit 843bc7956e
@@ -10,30 +10,26 @@ import org.jetbrains.annotations.NotNull;
* Used in object literals to specify property values by name. * Used in object literals to specify property values by name.
*/ */
public class JsPropertyInitializer extends SourceInfoAwareJsNode { public class JsPropertyInitializer extends SourceInfoAwareJsNode {
@NotNull
private JsExpression labelExpr; private JsExpression labelExpr;
@NotNull
private JsExpression valueExpr; private JsExpression valueExpr;
public JsPropertyInitializer(@NotNull JsExpression labelExpr) {
this.labelExpr = labelExpr;
}
public JsPropertyInitializer(@NotNull JsExpression labelExpr, @NotNull JsExpression valueExpr) { public JsPropertyInitializer(@NotNull JsExpression labelExpr, @NotNull JsExpression valueExpr) {
this(labelExpr); this.labelExpr = labelExpr;
this.valueExpr = valueExpr; this.valueExpr = valueExpr;
} }
@NotNull
public JsExpression getLabelExpr() { public JsExpression getLabelExpr() {
return labelExpr; return labelExpr;
} }
@NotNull
public JsExpression getValueExpr() { public JsExpression getValueExpr() {
return valueExpr; return valueExpr;
} }
public void setValueExpr(@NotNull JsExpression valueExpr) {
this.valueExpr = valueExpr;
}
@Override @Override
public void accept(JsVisitor v) { public void accept(JsVisitor v) {
v.visitPropertyInitializer(this); v.visitPropertyInitializer(this);
@@ -48,8 +44,12 @@ public class JsPropertyInitializer extends SourceInfoAwareJsNode {
@Override @Override
public void traverse(JsVisitorWithContext v, JsContext ctx) { public void traverse(JsVisitorWithContext v, JsContext ctx) {
if (v.visit(this, ctx)) { if (v.visit(this, ctx)) {
labelExpr = v.accept(labelExpr); JsExpression newLabel = v.accept(labelExpr);
valueExpr = v.accept(valueExpr); JsExpression newValue = v.accept(valueExpr);
assert newLabel != null: "Label cannot be replaced with null";
assert newValue != null: "Value cannot be replaced with null";
labelExpr = newLabel;
valueExpr = newValue;
} }
v.endVisit(this, ctx); v.endVisit(this, ctx);
} }