public boolean isWrittenBeforeType(@NotNull Type type) {
    StructTypePathEntry pathEntry = getPaths().stream().findFirst().orElse(null);
    if (pathEntry == null && type.getArrayDim() == 0) {
      return type.isAnnotatable();
    }
    if (pathEntry != null
        && pathEntry.getTypePathEntryKind() == StructTypePathEntry.Kind.ARRAY.getId()
        && getPaths().size() == type.getArrayDim()
    ) return true;
    return false;
  }
public boolean isWrittenBeforeType(@NotNull Type type)