nitc :: MMethodDef :: construct_contract
# Entry point to build contract (define the contract facet and define the contract method verification)
private fun construct_contract(v: ContractsVisitor, n_signature: ASignature, n_annotations: Array[AAnnotation], mcontract: MContract, exist_contract: Bool)
do
v.define_signature(mcontract, n_signature, mproperty.intro.msignature)
if not exist_contract and not is_intro then no_intro_contract(v, mcontract, n_annotations)
v.build_contract(n_annotations, mcontract, mclassdef)
# Check if the contract must be called to know if it's needed to construct the facet
if mcontract.is_called(v, self) then mproperty.define_contract_facet(v, mclassdef, mcontract)
end
src/contracts.nit:661,2--669,4