Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Represents the cast expression.
#id: id
the unique ID assigned to this fact.
#parent: id
ID of the parent node.
#exec: methodT, constructorT, classInitializerT, fieldT, annotationMemberT, annotationT
ID of the fact that represents the executable that contains this type cast. An executable is a method, constructor, class or field initialiser, annotation or annotation member.
#type: typeinst, intersectionTypeT
the id of the target type (the type to which the expression is cast)
#expr: expression
ID of the expression that is cast to the target type.
void myFunction(){ double i = 0; int j = 0; i = (double)j ; // <-- RHS of this assignment is represented by a typeCastT fact }
methodT(#method, ..., 'myFunction', [], ..., [], ...). ... assignT(#assign, ..., #method, ..., #cast). typeCastT(#cast, #assign, #method, #type, #j). identT(#j, #cast, #method, 'j', ...).
ast_node_type_spec(typeCastT,[ ast_arg(id, mult(1,1,no ), id, [typeCastT]), ast_arg(parent, mult(1,1,no ), id, [id]), ast_arg(exec, mult(1,1,no ), id, [methodT, constructorT, classInitializerT, classT, fieldT, annotationMemberT, packageT]), ast_arg(type, mult(1,1,no ), id, [type_inst, intersectionTypeT]), ast_arg(expr, mult(1,1,no ), id, [expressionType]) ]).