}
}
public SystemMappingUpdater executeUpdateClassDescriptorDiff_reference_(final UpdateClassDescriptorDiff _anUpdateClassDescriptorDiff, final Reference _aReference) {
final ExtensionClassPartMapping _ecm;
ClassMapping _cm;
final ClassDescriptionNode _ncn;
final MethodNode[] _methods;
_cm = ((ClassMapping) _systemMapping.classMappingAtReference_(_aReference));
_cm = ((ClassMapping) st.gravel.support.jvm.ArrayExtensions.inject_into_(_anUpdateClassDescriptorDiff.updatedMethodNodes(), _cm, ((st.gravel.support.jvm.Block2<ClassMapping, ClassMapping, MethodNode>) (new st.gravel.support.jvm.Block2<ClassMapping, ClassMapping, MethodNode>() {
@Override
public ClassMapping value_value_(final ClassMapping _classMapping, final MethodNode _methodNode) {
return (ClassMapping) _classMapping.withoutMethodMapping_(_methodNode.selector());
}
}))));
_cm = ((ClassMapping) st.gravel.support.jvm.ArrayExtensions.inject_into_(_anUpdateClassDescriptorDiff.deletedSelectors(), _cm, ((st.gravel.support.jvm.Block2<ClassMapping, ClassMapping, String>) (new st.gravel.support.jvm.Block2<ClassMapping, ClassMapping, String>() {
@Override
public ClassMapping value_value_(final ClassMapping _classMapping, final String _selector) {
return (ClassMapping) _classMapping.withoutMethodMapping_(_selector);
}
}))));
_ncn = _anUpdateClassDescriptorDiff.applyOnClassNode_(_cm.classNode());
_methods = st.gravel.support.jvm.ArrayExtensions.copyWithAll_(_anUpdateClassDescriptorDiff.methodNodes(), _anUpdateClassDescriptorDiff.updatedMethodNodes());
_ecm = this.compileExtensionClassPartMapping_methods_identityClass_instVars_sourceFile_(_ncn, _methods, _cm.identityClass(), _cm.classNode().boundInstVars(), this.findSourceFile_(_anUpdateClassDescriptorDiff.methodNodes()));
_systemMapping.addClassMapping_(_cm.withClassNode_(_ncn).withExtension_(_ecm));
return this;
}