@Override
public boolean enterWithNode(WithNode withNode) {
JsObjectImpl currentObject = modelBuilder.getCurrentObject();
Collection<TypeUsage> types = ModelUtils.resolveSemiTypeOfExpression(modelBuilder, withNode.getExpression());
JsWithObjectImpl withObject = new JsWithObjectImpl(currentObject, modelBuilder.getUnigueNameForWithObject(), types, new OffsetRange(withNode.getStart(), withNode.getFinish()),
new OffsetRange(withNode.getExpression().getStart(), withNode.getExpression().getFinish()), modelBuilder.getCurrentWith(), parserResult.getSnapshot().getMimeType(), null);
currentObject.addProperty(withObject.getName(), withObject);
modelBuilder.setCurrentObject(withObject);
withNode.getBody().accept(this);
modelBuilder.reset();
return false;
}