summaryrefslogtreecommitdiff
path: root/book/src/main/scala/book/Main.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-10 21:20:58 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-10 21:20:58 -0800
commitebdba5a49e6c1be8d271752d1d546142c37453a9 (patch)
treebe2b9498319a2b6e8de76ee8c08eca6860088b67 /book/src/main/scala/book/Main.scala
parent8ced367e0d736b429f0b39ae7fde2b76b1d64ed5 (diff)
downloadhands-on-scala-js-ebdba5a49e6c1be8d271752d1d546142c37453a9.tar.gz
hands-on-scala-js-ebdba5a49e6c1be8d271752d1d546142c37453a9.tar.bz2
hands-on-scala-js-ebdba5a49e6c1be8d271752d1d546142c37453a9.zip
First checked-internal-references working
Diffstat (limited to 'book/src/main/scala/book/Main.scala')
-rw-r--r--book/src/main/scala/book/Main.scala20
1 files changed, 19 insertions, 1 deletions
diff --git a/book/src/main/scala/book/Main.scala b/book/src/main/scala/book/Main.scala
index 8ebcbd4..fb61e57 100644
--- a/book/src/main/scala/book/Main.scala
+++ b/book/src/main/scala/book/Main.scala
@@ -25,7 +25,25 @@ object Main {
for(res <- Book.autoResources ++ Book.manualResources) {
copy(getClass.getResourceAsStream("/" + res), "output/" + res)
}
- sect.structure
+
+ val allNames = {
+ def rec(n: Node): Seq[String] = {
+ n.name +: n.children.flatMap(rec)
+ }
+ rec(sect.structure).toSet
+ }
+ val dupes = allNames.groupBy(x => x)
+ .values
+ .filter(_.size > 1)
+ .map(_.head)
+ .toSet
+
+ assert(dupes.size == 0, s"Duplicate names: $dupes")
+
+ val dangling = sect.usedRefs -- allNames
+
+ assert(dangling.size == 0, s"Dangling Refs: $dangling")
+
println("Writing Done")
}