code: private static int getFullModifiers(ClassStub data, AsmReferenceResolver resolver) {
          String className = data.className;
          int bound = className.length();
          while (bound > 0) {
              int idx = className.lastIndexOf('$', bound);
              if (idx > 0) {
                  ClassNode outerClass = resolver.resolveClassNullable(className.substring(0, idx));
                  if (outerClass instanceof DecompiledClassNode) {
                      Integer outerModifiers = ((DecompiledClassNode) outerClass).classData.innerClassModifiers.get(className.substring(idx + 1));
                      if (outerModifiers != null) {
                          return data.accessModifiers | outerModifiers;
                      }
                  }
              }
              bound = idx - 1;
          }
          return data.accessModifiers;
      }
docs: Static inner classes don't have "static" part in their own modifiers. Their containing classes have to be inspected
  whether they have an inner class with the same name that's static. '$' separator convention is used to search
  for parent classes.