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
- Alphabetic
- By Inheritance
- ContextReporter
- Reporter
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ContextReporter(_errorBuffer: LinkedHashSet[Analyzer.AbsTypeError] = null, _warningBuffer: LinkedHashSet[(Global.Position, String)] = null)
Type Members
- type Error = Analyzer.AbsTypeError
- class Severity extends AnyRef
- Definition Classes
- Reporter
- type Warning = (Global.Position, String)
Abstract Value Members
- abstract def handleError(pos: Global.Position, msg: String): Unit
- Attributes
- protected
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toany2stringadd[Analyzer.ContextReporter] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (Analyzer.ContextReporter, B)
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toArrowAssoc[Analyzer.ContextReporter] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addDiagString(msg: String)(implicit context: Analyzer.Context): String
- Attributes
- protected
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def clearAll(): Unit
- final def clearAllErrors(): Unit
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws(classOf[java.lang.CloneNotSupportedException])
- def count(severity: Severity): Int
- Definition Classes
- Reporter
- def echo(pos: Position, msg: String): Unit
- Definition Classes
- Reporter
- def echo(msg: String): Unit
- Definition Classes
- Reporter
- final def emitWarnings(): Unit
- def ensuring(cond: (Analyzer.ContextReporter) ⇒ Boolean, msg: ⇒ Any): Analyzer.ContextReporter
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toEnsuring[Analyzer.ContextReporter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (Analyzer.ContextReporter) ⇒ Boolean): Analyzer.ContextReporter
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toEnsuring[Analyzer.ContextReporter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: ⇒ Any): Analyzer.ContextReporter
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toEnsuring[Analyzer.ContextReporter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): Analyzer.ContextReporter
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toEnsuring[Analyzer.ContextReporter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def error(pos: Position, msg: String): Unit
- Definition Classes
- Reporter
- final def errorBuffer: LinkedHashSet[Analyzer.AbsTypeError]
- Attributes
- protected
- def errorCount: Int
- Definition Classes
- Reporter
- final def errors: collection.immutable.Seq[Error]
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def finish(): Unit
- Definition Classes
- Reporter
- final def firstError: Option[Analyzer.AbsTypeError]
- def flush(): Unit
- Definition Classes
- Reporter
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toStringFormat[Analyzer.ContextReporter] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def handleSuppressedAmbiguous(err: Analyzer.AbsAmbiguousTypeError): Unit
- Attributes
- protected
- def handleWarning(pos: Global.Position, msg: String): Unit
- Attributes
- protected
- final def hasErrors: Boolean
- Definition Classes
- ContextReporter → Reporter
- def hasWarnings: Boolean
- Definition Classes
- Reporter
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def info0(pos: Global.Position, msg: String, severity: Severity, force: Boolean): Unit
- Attributes
- protected
- Definition Classes
- ContextReporter → Reporter
- def isBuffering: Boolean
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isThrowing: Boolean
- def issue(err: Analyzer.AbsTypeError)(implicit context: Analyzer.Context): Unit
- 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
- def makeBuffering: Analyzer.ContextReporter
- def makeImmediate: Analyzer.ContextReporter
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def propagateErrorsTo[T](target: Analyzer.ContextReporter): Unit
- def propagateImplicitTypeErrorsTo(target: Analyzer.ContextReporter): Unit
- def reportFirstDivergentError(fun: Global.Tree, param: Global.Symbol, paramTp: Global.Type)(implicit context: Analyzer.Context): Unit
- def rerunWithDetails(setting: Setting, name: String): String
- Definition Classes
- Reporter
- def reset(): Unit
- Definition Classes
- Reporter
- def resetCount(severity: Severity): Unit
- Definition Classes
- Reporter
- def retainDivergentErrorsExcept(saved: Analyzer.DivergentImplicitTypeError): Unit
- final def synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws(classOf[java.lang.InterruptedException])
- def warning(pos: Position, msg: String): Unit
- Definition Classes
- Reporter
- final def warningBuffer: LinkedHashSet[(Global.Position, String)]
- Attributes
- protected
- def warningCount: Int
- Definition Classes
- Reporter
- final def warnings: collection.immutable.Seq[Warning]
- final def withFreshErrorBuffer[T](expr: ⇒ T): T
- Annotations
- @inline()
- def →[B](y: B): (Analyzer.ContextReporter, B)
- Implicit
- This member is added by an implicit conversion from Analyzer.ContextReporter toArrowAssoc[Analyzer.ContextReporter] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- object ERROR extends Severity
- Definition Classes
- Reporter
- object INFO extends Severity
- Definition Classes
- Reporter
- object WARNING extends Severity
- Definition Classes
- Reporter
The Scala compiler and reflection APIs.