public override void VisitAbstractRoutine(AbstractRoutineSignature rout)
{
rout.Arguments.Accept(this);
rout.ReturnType.Accept(this);
TypeBuilder typeBuilder = currentClass.TypeBuilder;
try {
CheckMethodConfliction(currentClass.TypeData, rout.Name,
rout.ReturnType.NodeType,
rout.Arguments);
}
catch (MethodConflictionException e) {
report.Error(rout.Location, e.Message);
return;
}
rout.MethodBuilder = DefineMethod(typeBuilder, rout.Name,
MethodAttributes.Public |
MethodAttributes.Virtual |
MethodAttributes.Abstract |
MethodAttributes.HideBySig,
rout.ReturnType.NodeType,
rout.Arguments);
}