Packages

  • package root

    The Scala compiler and reflection APIs.

    The Scala compiler and reflection APIs.

    Definition Classes
    root
  • package scala
    Definition Classes
    root
  • package tools
    Definition Classes
    scala
  • package nsc
    Definition Classes
    tools
  • package interactive
    Definition Classes
    nsc
  • trait CompilerControl extends AnyRef

    Interface of interactive compiler to a client such as an IDE The model the presentation compiler consists of the following parts:

    Interface of interactive compiler to a client such as an IDE The model the presentation compiler consists of the following parts:

    unitOfFile: The map from sourcefiles to loaded units. A sourcefile/unit is loaded if it occurs in that map.

    manipulated by: removeUnitOf, reloadSources.

    A call to reloadSources will add the given sources to the loaded units, and start a new background compiler pass to compile all loaded units (with the indicated sources first). Each background compiler pass has its own typer run. The background compiler thread can be interrupted each time an AST node is completely typechecked in the following ways:

    1. by a new call to reloadSources. This starts a new background compiler pass with a new typer run. 2. by a call to askTypeTree. This starts a new typer run if the forceReload parameter = true 3. by a call to askTypeAt, askTypeCompletion, askScopeCompletion, askToDoFirst, askLinkPos, askLastType. 4. by raising an exception in the scheduler. 5. by passing a high-priority action wrapped in ask { ... }.

    Actions under 1-3 can themselves be interrupted if they involve typechecking AST nodes. High-priority actions under 5 cannot; they always run to completion. So these high-priority actions should to be short.

    Normally, an interrupted action continues after the interrupting action is finished. However, if the interrupting action created a new typer run, the interrupted action is aborted. If there's an outstanding response, it will be set to a Right value with a FreshRunReq exception.

    Definition Classes
    interactive
  • AskDocCommentItem
  • AskLinkPosItem
  • AskLoadedTypedItem
  • AskParsedEnteredItem
  • AskScopeCompletionItem
  • AskToDoFirstItem
  • AskTypeAtItem
  • AskTypeCompletionItem
  • AskTypeItem
  • FilesDeletedItem
  • Member
  • NoWorkScheduler
  • ReloadItem
  • ScopeMember
  • TypeMember
  • WorkItem

class NoWorkScheduler extends WorkScheduler

A do-nothing work scheduler that responds immediately with MissingResponse.

Used during compiler shutdown.

Source
CompilerControl.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NoWorkScheduler
  2. WorkScheduler
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new NoWorkScheduler()

Type Members

  1. type Action = () => Unit
    Definition Classes
    WorkScheduler

Value Members

  1. def askDoQuickly[A](op: () => A): InterruptReq { type R = A }
    Definition Classes
    NoWorkSchedulerWorkScheduler
  2. def cancelQueued(): Unit

    Called from client: cancel all queued actions

    Called from client: cancel all queued actions

    Definition Classes
    WorkScheduler
  3. def dequeueAll[T](f: (Action) => Option[T]): Seq[T]
    Definition Classes
    WorkScheduler
  4. def dequeueAllInterrupts(f: (InterruptReq) => Unit): Unit
    Definition Classes
    WorkScheduler
  5. def doQuickly[A](op: () => A): A

    Called from client: have interrupt executed by server and return result

    Called from client: have interrupt executed by server and return result

    Definition Classes
    NoWorkSchedulerWorkScheduler
  6. def moreWork: Boolean

    called from Server: test whether one of todo list, throwables, or InterruptReqs is nonempty

    called from Server: test whether one of todo list, throwables, or InterruptReqs is nonempty

    Definition Classes
    WorkScheduler
  7. def nextWorkItem(): Option[Action]

    Called from server: get first action in todo list, and pop it off

    Called from server: get first action in todo list, and pop it off

    Definition Classes
    WorkScheduler
  8. def pollInterrupt(): Option[InterruptReq]
    Definition Classes
    WorkScheduler
  9. def pollThrowable(): Option[Throwable]

    Called from server: return optional exception posted by client Reset to no exception.

    Called from server: return optional exception posted by client Reset to no exception.

    Definition Classes
    WorkScheduler
  10. def postWorkItem(action: Action): Unit

    Called from client: have action executed by server

    Called from client: have action executed by server

    Definition Classes
    NoWorkSchedulerWorkScheduler
  11. def raise(exc: Throwable): Unit

    Called from client: Require an exception to be thrown on next poll.

    Called from client: Require an exception to be thrown on next poll.

    Definition Classes
    WorkScheduler
  12. def waitForMoreWork(): Unit

    Called from server: block until one of todo list, throwables or interruptReqs is nonempty

    Called from server: block until one of todo list, throwables or interruptReqs is nonempty

    Definition Classes
    WorkScheduler