Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,8 @@ ThisBuild / scalacOptions ++= Seq(
"--release", "11",
"-language:implicitConversions",
"-no-indent", // Require classical {...} syntax, indentation is not significant.
"-old-syntax" // Require `(...)` around conditions.
"-old-syntax", // Require `(...)` around conditions.
"-Yfuture-lazy-vals"
)

val scalacOptionsFor2_12 = Seq(
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/scala/flatgraph/storage/ZstdWrapper.scala
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ object ZstdWrapper {

override def close(): Unit = this.synchronized {
compressCtxs.foreach(_.close())
compressCtxs.clear
compressCtxs.clear()
decompressCtxs.foreach(_.close())
decompressCtxs.clear
decompressCtxs.clear()
this.closed = true
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class IterableOnceExtension[A](val iterable: IterableOnce[A]) extends AnyVal {
* the one and only element from an Iterable
* @throws NoSuchElementException
* if the Iterable is empty
* @throws AssertionError
* @throws java.lang.AssertionError
* if the Iterable has more than one element
*/
def loneElement(hint: String): A = {
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/flatgraph/traversal/Language.scala
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class GenericSteps[A](iterator: Iterator[A]) extends AnyVal {
def groupByStable[K](f: A => K): scala.collection.SeqMap[K, scala.collection.Seq[A]] = {
val res = mutable.LinkedHashMap[K, mutable.ArrayBuffer[A]]()
while (iterator.hasNext) {
val item = iterator.next
val item = iterator.next()
val key = f(item)
res.getOrElseUpdate(key, mutable.ArrayBuffer[A]()).addOne(item)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ object PathAwareRepeatStep {
case class WorklistItem[A](traversal: Iterator[A], depth: Int)

/** @see
* [[Traversal.repeat]] for a detailed overview
* [[flatgraph.traversal.GenericSteps.repeat]] for a detailed overview
*
* Implementation note: using recursion results in nicer code, but uses the JVM stack, which only has enough space for ~10k steps. So
* instead, this uses a programmatic Stack which is semantically identical. The RepeatTraversalTests cover this case.
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/flatgraph/traversal/RepeatStep.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import scala.collection.{mutable, Iterator}
object RepeatStep {

/** @see
* [[language.repeat]] for a detailed overview
* [[flatgraph.traversal.GenericSteps.repeat]] for a detailed overview
*
* Implementation note: using recursion results in nicer code, but uses the JVM stack, which only has enough space for ~10k steps. So
* instead, this uses a programmatic Stack which is semantically identical. The RepeatTraversalTests cover this case.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ object CodeSnippets {
| * */
|def ${nameCamelCase}Exact(value: $baseType): Iterator[NodeType] = traversal match {
| case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
| val someNode = init.next
| val someNode = init.next()
| flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, $propertyId, value).asInstanceOf[Iterator[NodeType]]
| case _ => traversal.filter{_.$nameCamelCase == value}
| }
Expand All @@ -130,7 +130,7 @@ object CodeSnippets {
| if(values.length == 1) return ${nameCamelCase}Exact(values.head)
| traversal match {
| case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
| val someNode = init.next
| val someNode = init.next()
| values.iterator.flatMap { value =>
| flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, $propertyId, value).asInstanceOf[Iterator[NodeType]]
| }
Expand Down Expand Up @@ -188,7 +188,7 @@ object CodeSnippets {
| * */
|def ${nameCamelCase}Exact(value: $baseType): Iterator[NodeType] = traversal match {
| case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
| val someNode = init.next
| val someNode = init.next()
| flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, $propertyId, value).asInstanceOf[Iterator[NodeType]]
| case _ => traversal.filter{node => val tmp = node.$nameCamelCase; tmp.isDefined && tmp.get == value}
|}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class TraversalCallBase[NodeType <: nodes.CallBase](val traversal: Iterato
*/
def dispatchTypeExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.dispatchType == value }
}
Expand All @@ -41,7 +41,7 @@ final class TraversalCallBase[NodeType <: nodes.CallBase](val traversal: Iterato
if (values.length == 1) return dispatchTypeExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class TraversalCallreprBase[NodeType <: nodes.CallReprBase](val traversal:
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 1, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -41,7 +41,7 @@ final class TraversalCallreprBase[NodeType <: nodes.CallReprBase](val traversal:
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 1, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class TraversalDeclarationBase[NodeType <: nodes.DeclarationBase](val trav
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 1, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -41,7 +41,7 @@ final class TraversalDeclarationBase[NodeType <: nodes.DeclarationBase](val trav
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 1, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ final class TraversalPropertyDispatchType[NodeType <: nodes.StoredNode & nodes.S
*/
def dispatchTypeExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.dispatchType == value }
}
Expand All @@ -43,7 +43,7 @@ final class TraversalPropertyDispatchType[NodeType <: nodes.StoredNode & nodes.S
if (values.length == 1) return dispatchTypeExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ final class TraversalPropertyName[NodeType <: nodes.StoredNode & nodes.StaticTyp
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 1, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -42,7 +42,7 @@ final class TraversalPropertyName[NodeType <: nodes.StoredNode & nodes.StaticTyp
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 1, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ final class TraversalNodeaBase[NodeType <: nodes.NodeABase](val traversal: Itera
*/
def stringMandatoryExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 8, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.stringMandatory == value }
}
Expand All @@ -270,7 +270,7 @@ final class TraversalNodeaBase[NodeType <: nodes.NodeABase](val traversal: Itera
if (values.length == 1) return stringMandatoryExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 8, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down Expand Up @@ -328,7 +328,7 @@ final class TraversalNodeaBase[NodeType <: nodes.NodeABase](val traversal: Itera
*/
def stringOptionalExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 9, value).asInstanceOf[Iterator[NodeType]]
case _ =>
traversal.filter { node =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ final class TraversalNodebBase[NodeType <: nodes.NodeBBase](val traversal: Itera
*/
def stringOptionalExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 9, value).asInstanceOf[Iterator[NodeType]]
case _ =>
traversal.filter { node =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ final class TraversalPropertyStringMandatory[NodeType <: nodes.StoredNode & node
*/
def stringMandatoryExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 8, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.stringMandatory == value }
}
Expand All @@ -43,7 +43,7 @@ final class TraversalPropertyStringMandatory[NodeType <: nodes.StoredNode & node
if (values.length == 1) return stringMandatoryExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 8, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ final class TraversalPropertyStringOptional[NodeType <: nodes.StoredNode & nodes
*/
def stringOptionalExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 9, value).asInstanceOf[Iterator[NodeType]]
case _ =>
traversal.filter { node =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class TraversalArtistBase[NodeType <: nodes.ArtistBase](val traversal: Ite
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -41,7 +41,7 @@ final class TraversalArtistBase[NodeType <: nodes.ArtistBase](val traversal: Ite
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ final class TraversalPropertyName[NodeType <: nodes.StoredNode & nodes.StaticTyp
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -42,7 +42,7 @@ final class TraversalPropertyName[NodeType <: nodes.StoredNode & nodes.StaticTyp
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ final class TraversalPropertySongtype[NodeType <: nodes.StoredNode & nodes.Stati
*/
def songtypeExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 2, value).asInstanceOf[Iterator[NodeType]]
case _ =>
traversal.filter { node =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class TraversalSongBase[NodeType <: nodes.SongBase](val traversal: Iterato
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -41,7 +41,7 @@ final class TraversalSongBase[NodeType <: nodes.SongBase](val traversal: Iterato
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down Expand Up @@ -174,7 +174,7 @@ final class TraversalSongBase[NodeType <: nodes.SongBase](val traversal: Iterato
*/
def songtypeExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 2, value).asInstanceOf[Iterator[NodeType]]
case _ =>
traversal.filter { node =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class TraversalBasenodeBase[NodeType <: nodes.BaseNodeBase](val traversal:
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -41,7 +41,7 @@ final class TraversalBasenodeBase[NodeType <: nodes.BaseNodeBase](val traversal:
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ final class TraversalPropertyName[NodeType <: nodes.StoredNode & nodes.StaticTyp
*/
def nameExact(value: String): Iterator[NodeType] = traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
case _ => traversal.filter { _.name == value }
}
Expand All @@ -42,7 +42,7 @@ final class TraversalPropertyName[NodeType <: nodes.StoredNode & nodes.StaticTyp
if (values.length == 1) return nameExact(values.head)
traversal match {
case init: flatgraph.misc.InitNodeIterator[flatgraph.GNode @unchecked] if init.isVirgin && init.hasNext =>
val someNode = init.next
val someNode = init.next()
values.iterator.flatMap { value =>
flatgraph.Accessors.getWithInverseIndex(someNode.graph, someNode.nodeKind, 0, value).asInstanceOf[Iterator[NodeType]]
}
Expand Down
Loading
Loading