code: @Override
      public R visitNoType(NoType t, P p) {
          TypeKind k = t.getKind();
          switch (k) {
          case VOID:
              return visitNoTypeAsVoid(t, p);
  
          case PACKAGE:
              return visitNoTypeAsPackage(t, p);
  
          case NONE:
              return visitNoTypeAsNone(t, p);
  
          default:
              throw new AssertionError("Bad kind " + k + " for NoType" + t);
          }
      }
docs: Visits a {@link NoType} instance, dispatching to the visit method for
  the specific {@linkplain TypeKind kind} of pseudo-type:
  {@code VOID}, {@code PACKAGE}, or {@code NONE}.
  
  @param t {@inheritDoc}
  @param p {@inheritDoc}
  @return  the result of the kind-specific visit method