Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Represents a method reference. See the Java Language Specification.
#id: id
the unique ID assigned to this fact.
#parent: id
the ID of the fact that represents the parent of this fact in the prolog AST.
#encl: method declaration type, fieldT
the ID of the fact that represents the enclosing element.
#expr: expression, staticTypeRefT, null
the ID of the fact representing the receiver expression or type. If the receiver is an array type, a parameterized type or a type parameter, this argument's value is null
and the argument “type” is used instead.
#type: type reference, null
the ID of the fact representing the receiver, if the receiver is an array type, a parameterized type or a type parameter. In all the other cases this argument's value is null
and the argument “expr” is used instead.
[#type_param_1,…]: Type reference, wildcardT
list of IDs of the type parameters of this method reference.
#ref: methodT
ID of the methodT fact that represents the declaration of the referenced method.
Arrays.sort(someArray, String::compareToIgnoreCase);
callT(#CallToSort, ..., [#someArrayParam, #MethodReference], ...). methodReferenceT(#MethodReference, #CallToSort, #Enclosing, #StaticTypeRef, null, [], #ReferenceToCompareMethod). staticTypeRefT(#StaticTypeRef, #MethodReference, #Enclosing, #RefToString).
ast_node_type_spec(methodReferenceT,[ ast_arg(id, mult(1,1,no ), id, [methodReferenceT]), ast_arg(parent, mult(1,1,no ), id, [id]), ast_arg(encl, mult(1,1,no ), id, [method_declaration_type, fieldT]), ast_arg(expr, mult(1,1,no ), id, [expressionType, staticTypeRefT, null_type]), ast_arg(type, mult(1,1,no ), id, [type_inst, null_type]), ast_arg(typeParams, mult(0,*,ord), id, [type_inst, wildcardT]), ast_arg(ref, mult(1,1,no ), id, [methodT]) ]).