code: List<Pair<List<Attribute.TypeCompound>, JCExpression>> catchTypesWithAnnotationsFromMulticatch(JCTypeUnion tree, List<TypeCompound> first) {
              List<JCExpression> alts = tree.alternatives;
              List<Pair<List<TypeCompound>, JCExpression>> res = List.of(new Pair<>(first, alts.head));
              alts = alts.tail;
  
              while(alts != null && alts.head != null) {
                  JCExpression alt = alts.head;
                  if (alt instanceof JCAnnotatedType) {
                      JCAnnotatedType a = (JCAnnotatedType)alt;
                      res = res.prepend(new Pair<>(annotate.fromAnnotations(a.annotations), alt));
                  } else {
                      res = res.prepend(new Pair<>(List.nil(), alt));
                  }
                  alts = alts.tail;
              }
              return res.reverse();
          }
docs: where