Packages

abstract class ContextReporter extends Reporter

A reporter for use during type checking. It has multiple modes for handling errors.

The default (immediate mode) is to send the error to the global reporter. When switched into buffering mode via makeBuffering, errors and warnings are buffered and not be reported (there's a special case for ambiguity errors for some reason: those are force to the reporter when context.ambiguousErrors, or else they are buffered -- TODO: can we simplify this?)

When using the type checker after typers, an error results in a TypeError being thrown. TODO: get rid of this mode.

To handle nested contexts, reporters share buffers. TODO: only buffer in BufferingReporter, emit immediately in ImmediateReporter

Source
Contexts.scala
Linear Supertypes
Reporter, Reporter, AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ContextReporter
  2. Reporter
  3. Reporter
  4. AnyRef
  5. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ContextReporter(_errorBuffer: LinkedHashSet[Analyzer.AbsTypeError] = null, _warningBuffer: LinkedHashSet[(Global.Position, String)] = null)

Type Members

  1. class Severity extends AnyRef
    Definition Classes
    Reporter
  2. type Error = Analyzer.AbsTypeError
  3. type Warning = (Global.Position, String)

Concrete Value Members

  1. object INFO extends Severity
    Definition Classes
    Reporter → Reporter
  2. object WARNING extends Severity
    Definition Classes
    Reporter → Reporter
  3. lazy val ERROR: Severity
    Definition Classes
    Reporter → Reporter
  4. var cancelled: Boolean
    Definition Classes
    Reporter
  5. final def clearAll(): Unit
  6. final def clearAllErrors(): Unit
  7. def comment(pos: Position, msg: String): Unit
    Definition Classes
    Reporter
  8. def count(severity: Severity): Int
    Definition Classes
    Reporter → Reporter
  9. def echo(msg: String): Unit

    For sending a message which should not be labelled as a warning/error, but also shouldn't require -verbose to be visible.

    For sending a message which should not be labelled as a warning/error, but also shouldn't require -verbose to be visible.

    Definition Classes
    Reporter
  10. def echo(pos: Position, msg: String): Unit
    Definition Classes
    Reporter
  11. final def emitWarnings(): Unit
  12. def error(pos: Position, msg: String): Unit
    Definition Classes
    Reporter
  13. def errorCount: Int
    Definition Classes
    Reporter
  14. final def errors: collection.immutable.Seq[Error]
  15. def finish(): Unit
    Definition Classes
    Reporter
  16. final def firstError: Option[Analyzer.AbsTypeError]
  17. def flush(): Unit
    Definition Classes
    Reporter
  18. final def hasErrors: Boolean
    Definition Classes
    ContextReporterReporter → Reporter
  19. def hasWarnings: Boolean
    Definition Classes
    Reporter
  20. final def info(pos: Position, msg: String, force: Boolean): Unit

    Informational messages.

    Informational messages. If !force, they may be suppressed.

    Definition Classes
    Reporter
  21. def isBuffering: Boolean
  22. def isThrowing: Boolean
  23. def issue(err: Analyzer.AbsTypeError)(implicit context: Analyzer.Context): Unit
  24. final def issueAmbiguousError(err: Analyzer.AbsAmbiguousTypeError)(implicit context: Analyzer.Context): Unit

    Emit an ambiguous error according to context.ambiguousErrors

    Emit an ambiguous error according to context.ambiguousErrors

    • when true, use global.reporter regardless of whether we're buffering (TODO: can we change this?)
    • else, let this context reporter decide
  25. def makeBuffering: Analyzer.ContextReporter
  26. def makeImmediate: Analyzer.ContextReporter
  27. def propagateImplicitTypeErrorsTo(target: Analyzer.ContextReporter): Unit
  28. final def propagatingErrorsTo[T](target: Analyzer.ContextReporter)(expr: ⇒ T): T
    Annotations
    @inline()
  29. def reportFirstDivergentError(fun: Global.Tree, param: Global.Symbol, paramTp: Global.Type)(implicit context: Analyzer.Context): Unit
  30. def rerunWithDetails(setting: Setting, name: String): String
    Definition Classes
    Reporter
  31. def reset(): Unit
    Definition Classes
    Reporter → Reporter
  32. def resetCount(severity: Severity): Unit
    Definition Classes
    Reporter → Reporter
  33. def retainDivergentErrorsExcept(saved: Analyzer.DivergentImplicitTypeError): Unit
  34. def warning(pos: Position, msg: String): Unit
    Definition Classes
    Reporter
  35. def warningCount: Int
    Definition Classes
    Reporter
  36. final def warnings: collection.immutable.Seq[Warning]
  37. final def withFreshErrorBuffer[T](expr: ⇒ T): T
    Annotations
    @inline()