Packages

c

dev.flixw.metrics.flix075

Flix075Adapter

final class Flix075Adapter extends CompilerModel

The one place that knows what Flix's AST looks like.

Why this file is Scala

Flix's AST is a sealed hierarchy, so a match over it is checked. Stock 0.75.3 has 76 Expr constructs; -Xfatal-warnings makes the build name every one an exhaustive match forgets. The reflective predecessor classified nodes by simple class name and ignored the rest in silence, which cost exactly what it sounds like: it named a TypeMatchRule that does not exist and missed the ExtMatchRule that does, so every extensible match was undercounted and nothing said so.

What it costs

A hard dependency on one Flix AST. This engine links against the release in plugin/lib, and against a materially different compiler it does not load at all — which dev.flixw.metrics.sdk.Adapters turns into a sentence rather than a NoSuchMethodError. For a measurement tool, refusing to run beats a number that is quietly wrong.

Linear Supertypes
CompilerModel, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Flix075Adapter
  2. CompilerModel
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Flix075Adapter()

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. def measure(projectRoot: Path): Model

    Measures one project, or throws.

    Measures one project, or throws.

    projectRoot

    the root flixw resolved; only declarations under it are described, since a typed root also holds the standard library and every dependency

    Definition Classes
    Flix075AdapterCompilerModel
    Annotations
    @throws(classOf[ModelFailure])
    Exceptions thrown

    ModelFailure when the project cannot be typed, which is a fact about the project and not about this adapter

  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def targets(): String

    What this adapter was written against, for a diagnostic rather than for dispatch.

    What this adapter was written against, for a diagnostic rather than for dispatch.

    Selection is by whether the adapter links, not by comparing this string: a fork reporting an unfamiliar version may still have the AST the adapter needs, and a compiler reporting a familiar one may not.

    Definition Classes
    Flix075AdapterCompilerModel
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from CompilerModel

Inherited from AnyRef

Inherited from Any

Ungrouped