Skip to content
Open
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
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import sbt.*
import Keys.*

val scala212 = "2.12.20"
val scala213 = "2.13.16"
val scala213 = "2.13.17"
val scala3 = "3.3.6"
val allScala = Seq(scala212, scala213, scala3)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import sbt.Def.spaceDelimited
import sbt.librarymanagement.Resolver

val scala212 = "2.12.20"
val scala213 = "2.13.16"
val scala213 = "2.13.17"
val scala3 = "3.3.6"
val allScala = Seq(scala212, scala213, scala3)

Expand Down
7 changes: 7 additions & 0 deletions core/src/main/scala-2.12/caliban/Hash.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package caliban

import scala.util.hashing.MurmurHash3

object Hash {
def caseClassHash(x: Product): Int = MurmurHash3.productHash(x)
}
7 changes: 7 additions & 0 deletions core/src/main/scala-2.13/caliban/Hash.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package caliban

import scala.util.hashing.MurmurHash3

object Hash {
def caseClassHash(x: Product): Int = MurmurHash3.caseClassHash(x)
}
7 changes: 7 additions & 0 deletions core/src/main/scala-3/caliban/Hash.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package caliban

import scala.util.hashing.MurmurHash3

object Hash {
def caseClassHash(x: Product): Int = MurmurHash3.productHash(x)
}
4 changes: 1 addition & 3 deletions core/src/main/scala/caliban/introspection/adt/__Field.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import caliban.parsing.adt.Definition.TypeSystemDefinition.TypeDefinition.{ Fiel
import caliban.parsing.adt.Directive
import caliban.schema.Annotations.GQLExcluded

import scala.util.hashing.MurmurHash3

case class __Field(
name: String,
description: Option[String],
Expand All @@ -16,7 +14,7 @@ case class __Field(
deprecationReason: Option[String] = None,
@GQLExcluded directives: Option[List[Directive]] = None
) {
final override lazy val hashCode: Int = MurmurHash3.productHash(this)
final override lazy val hashCode: Int = caliban.Hash.caseClassHash(this)

def toFieldDefinition: FieldDefinition = {
val allDirectives = (if (isDeprecated)
Expand Down
4 changes: 1 addition & 3 deletions core/src/main/scala/caliban/introspection/adt/__Type.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ import caliban.rendering.DocumentRenderer
import caliban.schema.Annotations.GQLExcluded
import caliban.schema.Types

import scala.util.hashing.MurmurHash3

case class __Type(
kind: __TypeKind,
name: Option[String] = None,
Expand All @@ -28,7 +26,7 @@ case class __Type(
) { self =>
import caliban.syntax._

@transient final override lazy val hashCode: Int = MurmurHash3.productHash(self)
@transient final override lazy val hashCode: Int = caliban.Hash.caseClassHash(self)

private[caliban] lazy val typeNameRepr: String = DocumentRenderer.renderTypeName(this)

Expand Down
8 changes: 3 additions & 5 deletions core/src/main/scala/caliban/parsing/adt/Selection.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ package caliban.parsing.adt
import caliban.InputValue
import caliban.parsing.adt.Type.NamedType

import scala.util.hashing.MurmurHash3

sealed trait Selection extends Serializable {
// TODO: Kept for binary compatibility
@transient override lazy val hashCode: Int = super.hashCode()
Expand All @@ -20,19 +18,19 @@ object Selection {
selectionSet: List[Selection],
index: Int
) extends Selection {
@transient final override lazy val hashCode: Int = MurmurHash3.productHash(this)
@transient final override lazy val hashCode: Int = caliban.Hash.caseClassHash(this)
}

case class FragmentSpread(name: String, directives: List[Directive]) extends Selection {
@transient final override lazy val hashCode: Int = MurmurHash3.productHash(this)
@transient final override lazy val hashCode: Int = caliban.Hash.caseClassHash(this)
}

case class InlineFragment(
typeCondition: Option[NamedType],
dirs: List[Directive],
selectionSet: List[Selection]
) extends Selection {
@transient final override lazy val hashCode: Int = MurmurHash3.productHash(this)
@transient final override lazy val hashCode: Int = caliban.Hash.caseClassHash(this)
}

}
4 changes: 1 addition & 3 deletions core/src/main/scala/caliban/validation/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,13 @@ import caliban.parsing.adt.{ Document, Selection, VariableDefinition }
import caliban.parsing.adt.Selection.Field
import caliban.schema.{ RootType, Types }

import scala.util.hashing.MurmurHash3

package object validation {
case class SelectedField(
parentType: __Type,
selection: Field,
fieldDef: __Field
) {
@transient final override lazy val hashCode: Int = MurmurHash3.productHash(this)
@transient final override lazy val hashCode: Int = Hash.caseClassHash(this)
}

type FieldMap = Map[String, Set[SelectedField]]
Expand Down