def check()

in check/src/main/scala/rsc/checkoutline/Checker.scala [18:87]


  def check(): Unit = {
    val nscIndex = load(nscResult)
    val rscIndex = load(rscResult)
    val nscIndex1 = highlevelPatch(nscIndex)
    val rscIndex1 = highlevelPatch(rscIndex)
    val syms = (nscIndex1.infos.keys ++ rscIndex1.infos.keys).toList.sorted
    syms.foreach { sym =>
      val nscInfo = nscIndex1.infos.get(sym)
      val rscInfo = rscIndex1.infos.get(sym)
      (nscInfo, rscInfo) match {
        case (Some(nscInfo), Some(rscInfo)) =>
          if (nscInfo.symbol == "com/twitter/util/Stopwatches.start()." ||
              nscInfo.symbol == "com/twitter/util/StopwatchBenchmark.StopwatchState#elapsed.") {
            // FIXME: https://github.com/scalameta/scalameta/issues/1782
            ()
          } else if ((nscInfo.displayName.contains("$default$") ||
                     nscInfo.displayName == "unapply") &&
                     nscInfo.str.contains("existential_type")) {
            // FIXME: https://github.com/twitter/rsc/issues/274
            ()
          } else {
            val nscInfo1 = highlevelPatch(nscIndex, nscInfo)
            val rscInfo1 = highlevelPatch(rscIndex, rscInfo)
            val nscRepr = lowlevelPatch(lowlevelRepr(nscInfo1))
            val rscRepr = lowlevelPatch(lowlevelRepr(rscInfo1))
            val nscString = nscRepr.toString
            val rscString = rscRepr.toString
            if (nscString != rscString) {
              val header = s"${rscIndex1.anchors(sym)}: $sym"
              problems += DifferentProblem(header, nscString, rscString)
            }
          }
        case (Some(nscInfo), None) =>
          if (sym.contains("#_$")) {
            // FIXME: https://github.com/scalameta/scalameta/issues/1586
            ()
          } else if (sym.contains("#protected$")) {
            // FIXME: https://github.com/twitter/rsc/issues/100
            ()
          } else {
            val header = s"${nscIndex1.anchors(sym)}: $sym"
            problems += MissingRscProblem(header)
          }
        case (None, Some(rscInfo)) =>
          if (sym.desc.value == "equals" ||
              sym.desc.value == "hashCode" ||
              sym.desc.value == "toString" ||
              sym.desc.value == "copy" ||
              sym.desc.value == "canEqual" ||
              sym.desc.value == "apply" ||
              sym.desc.value == "unapply" ||
              sym.contains("#equals(") ||
              sym.contains("#copy") ||
              sym.contains("#canEqual") ||
              sym.contains(".apply") ||
              sym.contains(".unapply")) {
            // FIXME: https://github.com/twitter/rsc/issues/98
            ()
          } else if (sym.desc.value == "$init$") {
            // FIXME: https://github.com/scalameta/scalameta/issues/1819
            ()
          } else {
            val header = s"${rscIndex1.anchors(sym)}: $sym"
            problems += MissingNscProblem(header)
          }
        case (None, None) =>
          ()
      }
    }
  }