def desc()

in rsc/src/main/scala/rsc/pretty/PrettyOutline.scala [9:59]


  def desc(outline: Outline): String = {
    outline match {
      case outline: DefnClass =>
        if (outline.hasAnnotationInterface) s"@interface ${outline.id.value}"
        else if (outline.hasClass) s"class ${outline.id.value}"
        else if (outline.hasEnum) s"enum ${outline.id.value}"
        else if (outline.hasInterface) s"interface ${outline.id.value}"
        else if (outline.hasTrait) s"trait ${outline.id.value}"
        else crash(outline)
      case outline: DefnConstant =>
        s"constant ${outline.id.value}"
      case outline: DefnCtor =>
        s"constructor"
      case outline: DefnField =>
        if (outline.hasVal) s"val ${outline.id.value}"
        else s"var ${outline.id.value}"
      case outline: DefnMacro =>
        s"macro ${outline.id.value}"
      case outline: DefnMethod =>
        s"def ${outline.id.value}"
      case outline: DefnObject =>
        s"object ${outline.id.value}"
      case outline: DefnPackage =>
        s"package ${outline.pid}"
      case outline: DefnPackageObject =>
        s"package object ${outline.id.value}"
      case outline: DefnProcedure =>
        s"def ${outline.id.value}"
      case outline: DefnType =>
        s"type ${outline.id.value}"
      case outline: Param =>
        outline.id match {
          case AnonId() => s"anonymous parameter"
          case id: NamedId => s"parameter ${id.value}"
        }
      case outline: PatVar =>
        outline.id match {
          case AnonId() => s"anonymous pattern"
          case id: NamedId => s"pattern ${id.value}"
        }
      case outline: PrimaryCtor =>
        s"primary constructor"
      case outline: Self =>
        s"self"
      case outline: TypeParam =>
        outline.id match {
          case AnonId() => s"anonymous type parameter"
          case id: NamedId => s"type parameter ${id.value}"
        }
    }
  }