private void checkInterfaceMethodDeclaration(ConcreteMethod declaredMethod) {
    if (!dexOptions.apiIsSupported(DexFormat.API_DEFINE_INTERFACE_METHODS)) {
      String reason =
          String.format(
              "defining a %s interface method requires --min-sdk-version >= %d (currently %d)"
                  + " for interface methods: %s.%s",
              declaredMethod.isStaticMethod() ? "static" : "default",
              DexFormat.API_DEFINE_INTERFACE_METHODS,
              dexOptions.minSdkVersion,
              declaredMethod.getDefiningClass().toHuman(),
              declaredMethod.getNat().toHuman());
      warn(reason);
    }
  }
Simulates the effect of the instruction at the given offset, by making appropriate calls on the
given frame.

@param offset {@code offset >= 0;} offset of the instruction to simulate
@param frame {@code non-null;} frame to operate on
@return the length of the instruction, in bytes
android/android_framework/dex-maker/src/main/java/com/android/dx/cf/code/Simulator.java