HashAPI

xsbt.api.HashAPI
See theHashAPI companion object
final class HashAPI

Implements hashing of public API.

Value parameters

includeDefinitions

when hashing a structure (e.g. of a class) should hashes of definitions (members) be included in a hash sum. Structure can appear as a type (in structural type). In that case we always include definitions in a hash sum.

includeParamNames

should parameter names for methods be included in a hash sum

includePrivate

should private definitions be included in a hash sum

includeSealedChildren

Controls if types of children of sealed class should be included in hash.

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Constructors

def this(includePrivate: Boolean, includeParamNames: Boolean)

Concrete methods

final def extend(a: Hash): Unit
def hashAPI(c: ClassLike): Unit
def hashAccess(a: Access): Unit
def hashAnnotated(a: Annotated): Unit
def hashAnnotation(annotation: Annotation): Unit
def hashAnnotationArgument(arg: AnnotationArgument): Unit
def hashAnnotationArguments(args: Array[AnnotationArgument]): Unit
def hashAnnotations(annotations: Array[Annotation]): Unit
final def hashArray[T <: AnyRef](s: Array[T], hashF: T => Unit): Unit
final def hashBoolean(b: Boolean): Unit
final def hashClass(c: ClassLike): Unit
def hashClass0(c: ClassLike): Unit
final def hashClassDef(c: ClassLikeDef): Unit
def hashConstant(c: Constant): Unit
def hashDef(d: Def): Unit
def hashDefinition(d: Definition): Unit
def hashDefinitions(ds: Seq[Definition], topLevel: Boolean, isTrait: Boolean): Unit
def hashDefinitionsWithExtraHash(ds: IterableOnce[Definition], extraHash: Hash): Unit

Hashes a sequence of definitions by combining each definition's own hash with extra one supplied.

Hashes a sequence of definitions by combining each definition's own hash with extra one supplied.

It's useful when one wants to influence hash of a definition by some external (to definition) factor (e.g. location of definition).

NOTE: This method doesn't perform any filtering of passed definitions.

Attributes

def hashExistential(e: Existential): Unit
def hashField(f: FieldLike): Unit
def hashIdPath(id: Id): Unit
def hashModifiers(m: Modifiers): Unit
def hashPackage(p: Package): Unit
def hashParameterRef(p: ParameterRef): Unit
def hashParameterized(p: Parameterized): Unit
def hashParameterizedDefinition[T <: ParameterizedDefinition](d: T): Unit
def hashParameters(parameters: Array[TypeParameter], base: Type): Unit
def hashPath(path: Path): Unit
def hashPathComponent(pc: PathComponent): Unit
def hashPolymorphic(p: Polymorphic): Unit
def hashProjection(p: Projection): Unit
def hashQualified(qual: Qualified): Unit
def hashQualifier(qual: Qualifier): Unit
def hashSingleton(s: Singleton): Unit
final def hashString(s: String): Unit
def hashStructure(structure: Structure, includeDefinitions: Boolean, isTrait: Boolean): Unit
def hashStructure0(structure: Structure, includeDefinitions: Boolean, isTrait: Boolean): Unit
def hashSuperPath(s: Super): Unit
final def hashSymmetric[T](ts: IterableOnce[T], hashF: T => Unit): Unit
def hashType(t: Type, includeDefinitions: Boolean): Unit
def hashTypeAlias(d: TypeAlias): Unit
def hashTypeDeclaration(d: TypeDeclaration): Unit
def hashTypeParameter(parameter: TypeParameter): Unit
def hashTypeParameters(parameters: Array[TypeParameter]): Unit
def hashTypes(ts: Array[Type], includeDefinitions: Boolean): Unit
def hashTypesSymmetric(ts: Array[Type], includeDefinitions: Boolean): Unit
def hashValueParameter(parameter: MethodParameter): Unit
def hashValueParameterList(list: ParameterList): Unit
def hashValueParameters(valueParameters: Array[ParameterList]): Unit