+# A specific method call site with its associated informations.
+class CallSite
+ # The assiciated node for location
+ var node: ANode
+
+ # The statis type of the receiver
+ var recv: MType
+
+ # Is the receiver self?
+ # If "for_self", virtual types of the signature are keeped
+ # If "not_for_self", virtual type are erased
+ var recv_is_self: Bool
+
+ # The designated method
+ var mproperty: MMethod
+
+ # The statically designated method definition
+ # The most specif one, it is.
+ var mpropdef: MMethodDef
+
+ # The resolved signature for the receiver
+ var msignature: MSignature
+
+ # Is a implicit cast required on erasure typing policy?
+ var erasure_cast: Bool
+
+ private fun check_signature(v: TypeVisitor, args: Array[AExpr]): Bool
+ do
+ return v.check_signature(self.node, args, self.mproperty.name, self.msignature)
+ end
+end
+