# Define the new contract take in consideration that an old contract exist or not
private fun build_contract(n_annotations: Array[AAnnotation], mcontract: MContract, mclassdef: MClassDef)
do
var n_conditions = new Array[AExpr]
# Retrieving the expression provided in the annotation
for n_annotation in n_annotations do n_conditions.add n_annotation.construct_condition(self)
if is_intro_contract then
# Create new contract method
mcontract.create_intro_contract(self, n_conditions, mclassdef)
else
# Create a redef of contract to take in consideration the new condition
mcontract.create_subcontract(self, n_conditions, mclassdef)
end
end
src/contracts.nit:128,2--141,4