boolean isPureMethod(Member method) {
    if (pureMethods.contains(method)) {
      return true;
    }
    if (method.methodName.equals("getClass") && method.methodDesc.equals("()Ljava/lang/Class;")) {
      // Can be virtual, so ignore class name
      return true;
    }
    // Array clone() method is a special beast: it's qualifier class is array itself
    if (method.internalClassName.startsWith("[") && method.methodName.equals("clone") && method.methodDesc.equals("()Ljava/lang/Object;")) {
      return true;
    }
    return false;
  }
boolean isPureMethod(Member method)