Property definitions

nitc $ CallSite :: defaultinit
# A specific method call site with its associated informations.
class CallSite
	super MEntity

	redef var location

	# The static type of the receiver (possibly unresolved)
	var recv: MType

	# The module where the callsite is present
	var mmodule: MModule

	# The anchor to use with `recv` or `msignature`
	var anchor: nullable MClassType

	# Is the receiver self?
	# If "for_self", virtual types of the signature are kept
	# 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

	# The mapping used on the call to associate arguments to parameters
	# If null then no specific association is required.
	var signaturemap: nullable SignatureMap = null

	private fun check_signature(v: TypeVisitor, node: ANode, args: Array[AExpr]): Bool
	do
		var map = v.check_signature(node, args, self.mproperty, self.msignature)
		signaturemap = map
		if map == null then is_broken = true
		return map == null
	end

	# Information about the callsite to display on a node
	fun dump_info(v: ASTDump): String do
		return "{recv}.{mpropdef}{msignature}"
	end

	redef fun mdoc_or_fallback do return mproperty.intro.mdoc
end
src/semantize/typing.nit:774,1--825,3