for (final FullMixinDefinition fullMixin : mixins) {
final ReusableStructure mixin = fullMixin.getMixin();
final IScope mixinScope = fullMixin.getScope();
// the following needs to run in snapshot because calculateMixinsWorkingScope modifies that scope
InScopeSnapshotRunner.runInLocalDataSnapshot(mixinScope.getParent(), new ITask() {
@Override
public void run() {
// add arguments
IScope mixinArguments = buildMixinsArguments(reference, callerScope, fullMixin);