code: private boolean couldRequireKnownOuterGenerics(final GenericsContext root, final Type type) {
          final Type outer = TypeUtils.getOuter(type);
          // inner class may use generics of the root class
          return outer != null && genericsInfo.getComposingTypes().contains(root.resolveClass(outer));
      }
docs: Inner class could use outer class generics, and if outer class is known (in current hierarchy),
  we can assume to use it's generics (correct for most cases, but may be corner cases).
  
  @param root correct context for type resolution
  @param type type to check
  @return true if type is inner and outer class is present in current hierarchy