do
self._n_expr = recv
_n_args = new AListExprs
- _n_id = new TId
+ _n_qid = new AQid
+ _n_qid.n_id = new TId
if args != null then
self.n_args.n_exprs.add_all(args)
end
else if expr isa ACallExpr then
# We support calls to "exec" only
var exec_args = expr.n_args.to_a
- if expr.n_id.text != "exec" or exec_args.is_empty then
+ if expr.n_qid.n_id.text != "exec" or exec_args.is_empty then
modelbuilder.error(nat, "Syntax Error: `{annotation_name}` accepts only calls to `exec` with the command as arguments.")
return
end
redef fun accept_regex_visitor(v)
do
- var method = n_id
+ var method = n_qid.n_id
var receiver = n_expr
# Check only string literals on which `to_re` is called
if node isa AArrayExpr then
dcp.cpt_explanations.inc("lit-array")
- else if p isa ACallExpr and (p.n_id.text == "sort" or p.n_id.text == "linearize_mpropdefs") then
- dcp.cpt_explanations.inc("generic methods (sort-method)")
- else if p isa ACallExpr and p.n_id.text == "visit_list" then
- dcp.cpt_explanations.inc("use-site covariance (visit_list-method)")
+ else if p isa ACallExpr then
+ var name = p.n_qid.n_id.text
+ if name == "sort" or name == "linearize_mpropdefs" then
+ dcp.cpt_explanations.inc("generic methods (sort-method)")
+ else if name == "visit_list" then
+ dcp.cpt_explanations.inc("use-site covariance (visit_list-method)")
+ else
+ dcp.cpt_explanations.inc("other covariance")
+ end
else
dcp.cpt_explanations.inc("other covariance")
end
if not self isa ACallExpr then return null
if not self.n_expr isa AImplicitSelfExpr then return null
if not self.n_args.n_exprs.is_empty then return null
- return self.n_id.text
+ return self.n_qid.n_id.text
end
end
v.addt
end
- v.visit n_id
+ v.visit n_qid
if not n_args.n_exprs.is_empty then
if is_stmt and n_args.n_exprs.length == 1 then
redef class ACallAssignExpr
redef fun accept_pretty_printer(v) do
v.visit_recv n_expr
- v.visit n_id
+ v.visit n_qid
if not n_args.n_exprs.is_empty then
v.consume "("
redef class ACallReassignExpr
redef fun accept_pretty_printer(v) do
v.visit_recv n_expr
- v.visit n_id
+ v.visit n_qid
if not n_args.n_exprs.is_empty then
v.consume "("
v.adds
v.visit n_type
- if n_id != null then
+ if n_qid != null then
v.consume "."
if not can_inline then
v.indent -= 1
end
- v.visit n_id
+ v.visit n_qid
end
v.visit_args n_args.n_exprs
redef fun accept_scope_visitor(v)
do
if n_expr isa AImplicitSelfExpr then
- var name = n_id.text
+ var name = n_qid.n_id.text
var variable = v.search_variable(name)
if variable != null then
var n: AExpr
redef fun variable_create(variable)
do
variable.warn_unread = false
- return new AVarExpr.init_avarexpr(n_id)
+ return new AVarExpr.init_avarexpr(n_qid.n_id)
end
end
redef class ACallAssignExpr
redef fun variable_create(variable)
do
- return new AVarAssignExpr.init_avarassignexpr(n_id, n_assign, n_value)
+ return new AVarAssignExpr.init_avarassignexpr(n_qid.n_id, n_assign, n_value)
end
end
redef fun variable_create(variable)
do
variable.warn_unread = false
- return new AVarReassignExpr.init_avarreassignexpr(n_id, n_assign_op, n_value)
+ return new AVarReassignExpr.init_avarreassignexpr(n_qid.n_id, n_assign_op, n_value)
end
end
redef class ACallExpr
- redef fun property_name do return n_id.text
- redef fun property_node do return n_id
+ redef fun property_name do return n_qid.n_id.text
+ redef fun property_node do return n_qid
redef fun compute_raw_arguments do return n_args.to_a
end
redef class ACallAssignExpr
- redef fun property_name do return n_id.text + "="
- redef fun property_node do return n_id
+ redef fun property_name do return n_qid.n_id.text + "="
+ redef fun property_node do return n_qid
redef fun compute_raw_arguments
do
var res = n_args.to_a
end
redef class ACallReassignExpr
- redef fun property_name do return n_id.text
- redef fun property_node do return n_id
+ redef fun property_name do return n_qid.n_id.text
+ redef fun property_node do return n_qid.n_id
redef fun compute_raw_arguments do return n_args.to_a
end
var kind = recvtype.mclass.kind
var name: String
- var nid = self.n_id
+ var nqid = self.n_qid
var node: ANode
- if nid != null then
- name = nid.text
- node = nid
+ if nqid != null then
+ name = nqid.n_id.text
+ node = nqid
else
name = "new"
node = self.n_kwnew