@Override public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext) { TypeDescription auxiliaryType = implementationContext.register( new MethodCallProxy(specialMethodInvocation, serializable)); return new Compound( TypeCreation.forType(auxiliaryType), Duplication.SINGLE, MethodVariableAccess.allArgumentsOf(specialMethodInvocation.getMethodDescription()) .prependThisReference(), MethodInvocation.invoke( auxiliaryType.getDeclaredMethods().filter(isConstructor()).getOnly())) .apply(methodVisitor, implementationContext); }