in lib/generator.js [2831:2867]
visitConstructModelField(ast, level, env) {
var str = '';
var expected = ast.expectedType;
expected.pointer = true;
if (ast.expr.type === 'property_access') {
expected.needCast = 'false';
}
let comments = DSL.comment.getFrontComments(this.comments, ast.tokenRange[0]);
this.visitComments(comments, level);
this.emit(`${_format(_name(ast.fieldName))}: ${str}`, level);
if ((_name(ast.expectedType) === 'number' || _name(ast.expectedType) === 'integer') && _name(ast.expr.inferred) === 'int32') {
this.emit(`dara.ToInt(`);
this.visitExpr(ast.expr, level, env, expected);
this.emit(`)`);
} else if (ast.expr.type !== 'number' && (_name(ast.expr.inferred) === 'number' || _name(ast.expr.inferred) === 'integer') && _name(ast.expectedType) === 'int32') {
this.emit(`dara.ToInt32(`);
this.visitExpr(ast.expr, level, env, expected);
this.emit(`)`);
} else {
let setFunc;
if(ast.expr && ast.expr.type === 'call') {
let dealFunc = this.getVarDealFunc(ast.expr, expected);
setFunc = dealFunc && dealFunc(_name(ast.expr.inferred));
}
if(setFunc) {
this.emit(`${setFunc}`);
}
this.visitExpr(ast.expr, level, env, expected);
if(setFunc) {
this.emit(')');
}
}
if (str !== '') {
this.emit(`)`);
}
this.emit(`,\n`);
}