Interface OperationBodyLocator

All Known Implementing Classes:
BodiesInAggregateParts, BodiesInServiceDeclaration, ClonedBodiesInAggregateParts
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface OperationBodyLocator
THE operation-body locator (IR tidy plan DFN-1): where, in the parse tree, the body of one of a construct's methods or operators is written. It is the only thing that differs between the aggregate kinds an AggregateDfnGenerator turns into IR - a class keeps its members in aggregateParts, a service in its own declaration's methodDeclaration/serviceOperationDeclaration children, and a monomorphised copy (a Scenario-3 parameterisation, a dynamic class inside a generic body) holds CLONES that match their declarations by source token, not identity. Use one of its three implementations - BodiesInAggregateParts, ClonedBodiesInAggregateParts and BodiesInServiceDeclaration - never a further walk of the declarations.

Empty means there is no written body to generate from: the member was declared with default, was synthesised by an earlier phase, or is not declared there at all - all three are generated by the synthesis path.