def tupleCaseClassEquivalent()

in bijection-macros/src/main/scala/com/twitter/bijection/macros/impl/TupleUtils.scala [11:24]


  def tupleCaseClassEquivalent(tpe: Type): Seq[Tree] =
    tpe.declarations.collect {
      case m: MethodSymbol if m.isCaseAccessor =>
        m.returnType match {
          case tpe if IsCaseClassImpl.isCaseClassType(c)(tpe) =>
            tupleCaseClassCache.getOrElseUpdate(
              tpe, {
                val equiv = tupleCaseClassEquivalent(tpe)
                AppliedTypeTree(Ident(newTypeName("Tuple" + equiv.size)), equiv.toList)
              }
            )
          case tpe => Ident(tpe.typeSymbol.name.toTypeName)
        }
    }.toSeq