Scope

abstract class Scope extends Showable

A scope contains a set of symbols. It can be an extension of some outer scope, from which it inherits all symbols. This class does not have any methods to add symbols to a scope or to delete them. These methods are provided by subclass MutableScope.

trait Showable
class Object
trait Matchable
class Any

Value members

Abstract methods

Returns a new mutable scope with the same content as this one.

Returns a new mutable scope with the same content as this one.

def lookupEntry(name: Name)(using Context): ScopeEntry

Lookup a symbol entry matching given name.

Lookup a symbol entry matching given name.

Lookup next entry with same name as this one

Lookup next entry with same name as this one

The number of outer scopes from which symbols are inherited

The number of outer scopes from which symbols are inherited

def size: Int

The number of symbols in this scope (including inherited ones from outer scopes).

The number of symbols in this scope (including inherited ones from outer scopes).

def toList(using Context): List[Symbol]

The symbols in this scope in the order they were entered; inherited from outer ones first.

The symbols in this scope in the order they were entered; inherited from outer ones first.

Concrete methods

final def contains(name: Name, sym: Symbol)(using Context): Boolean

Does this scope contain a reference to sym when looking up name?

Does this scope contain a reference to sym when looking up name?

final def denotsNamed(name: Name)(using Context): PreDenotation

The denotation set of all the symbols with given name in this scope Symbols occur in the result in reverse order relative to their occurrence in this.toList.

The denotation set of all the symbols with given name in this scope Symbols occur in the result in reverse order relative to their occurrence in this.toList.

protected def ensureComplete(using Context): Unit

Ensure that all elements of this scope have been entered. Overridden by SymbolLoaders.PackageLoader#PackageScope, where it makes sure that all names with $'s have been added.

Ensure that all elements of this scope have been entered. Overridden by SymbolLoaders.PackageLoader#PackageScope, where it makes sure that all names with $'s have been added.

def exists(p: Symbol => Boolean)(using Context): Boolean

Tests whether a predicate holds for at least one Symbol of this Scope.

Tests whether a predicate holds for at least one Symbol of this Scope.

def filter(p: Symbol => Boolean)(using Context): List[Symbol]

Selects all Symbols of this Scope which satisfy a predicate.

Selects all Symbols of this Scope which satisfy a predicate.

final def filteredScope(p: Symbol => Boolean)(using Context): Scope

The scope that keeps only those symbols from this scope that match the given predicates. If all symbols match, returns the scope itself, otherwise a copy with the matching symbols.

The scope that keeps only those symbols from this scope that match the given predicates. If all symbols match, returns the scope itself, otherwise a copy with the matching symbols.

def find(p: Symbol => Boolean)(using Context): Symbol

Finds the first Symbol of this Scope satisfying a predicate, if any.

Finds the first Symbol of this Scope satisfying a predicate, if any.

def foreach[U](f: Symbol => U)(using Context): Unit

Applies a function f to all Symbols of this Scope.

Applies a function f to all Symbols of this Scope.

Is the scope empty?

Is the scope empty?

Return all symbols as an iterator in the order they were entered in this scope.

Return all symbols as an iterator in the order they were entered in this scope.

final def lookup(name: Name)(using Context): Symbol

Lookup a symbol

Lookup a symbol

final def lookupAll(name: Name)(using Context): Iterator[Symbol]

Returns an iterator yielding every symbol with given name in this scope.

Returns an iterator yielding every symbol with given name in this scope.

final def toText(printer: Printer): Text

Inherited methods

def fallbackToText(printer: Printer): Text

A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

Inherited from
Showable
def show(using Context): String

The string representation of this showable element.

The string representation of this showable element.

Inherited from
Showable
def showIndented(margin: Int)(using Context): String

The string representation with each line after the first one indented by the given given margin (in spaces).

The string representation with each line after the first one indented by the given given margin (in spaces).

Inherited from
Showable
def showSummary(depth: Int)(using Context): String

The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.

The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.

Inherited from
Showable