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) =>
()
}
}
}