code: protected static LatentMatcher<MethodDescription> of(LatentMatcher<? super MethodDescription> ignoredMethods, TypeDescription originalType) {
          ElementMatcher.Junction<MethodDescription> predefinedMethodSignatures = none();
          for (MethodDescription methodDescription : originalType.getDeclaredMethods()) {
              ElementMatcher.Junction<MethodDescription> signature = methodDescription.isConstructor()
                      ? isConstructor()
                      : ElementMatchers.<MethodDescription>named(methodDescription.getName());
              signature = signature.and(returns(methodDescription.getReturnType().asErasure()));
              signature = signature.and(takesArguments(methodDescription.getParameters().asTypeList().asErasures()));
              predefinedMethodSignatures = predefinedMethodSignatures.or(signature);
          }
          return new InliningImplementationMatcher(ignoredMethods, predefinedMethodSignatures);
      }
docs: Creates a matcher where only overridable or declared methods are matched unless those are ignored. Methods that
  are declared by the target type are only matched if they are not ignored. Declared methods that are not found on the
  target type are always matched.
  
  @param ignoredMethods A method matcher that matches any ignored method.
  @param originalType   The original type of the instrumentation before adding any user methods.
  @return A latent method matcher that identifies any method to instrument for a rebasement or redefinition.