@Override
	public MethodVisitor visitMethod(int access, @Nonnull String name, @Nonnull String descriptor,
	                                 @Nullable String signature, @Nullable String[] exceptions) {
		// Adapted from base ClassRemapper implementation.
		// This allows us to skip calls to super 'visitMethod' to bypass calls to 'createMethodRemapper'
		// since our visitor we want to make needs information accessible here, but not in that method.
		String remappedDescriptor = remapper.mapMethodDesc(descriptor);
		MethodVisitor mv =
				cv == null ? null : cv.visitMethod(
						access,
						remapper.mapMethodName(className, name, descriptor),
						remappedDescriptor,
						remapper.mapSignature(signature, false),
						exceptions == null ? null : remapper.mapTypes(exceptions));
		return mv == null ? null : new VariableRenamingMethodVisitor(className, name, descriptor, mv, workspaceRemapper);
	}
@param cv
		Class to visit and rename mapped items of.
@param workspace
		Workspace to pull class info from when additional context is needed.
@param mappings
		Mappings to apply.
recaf-core/src/main/java/software/coley/recaf/services/mapping/WorkspaceClassRemapper.java