tastyquery

package tastyquery

Members list

Concise view

Type members

Classlikes

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object Classpaths

In-memory representation of the contents of classpaths.

In-memory representation of the contents of classpaths.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object Constants

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object Contexts

Container for top-level definitions related to contexts.

Container for top-level definitions related to contexts.

See Contexts.Context for more details.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
final class Definitions

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
object Exceptions

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
opaque object Flags

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Flags.type
object Names

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Names.type
object Signatures

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object Spans

The offsets part of a full position, consisting of 2 or 3 entries:

The offsets part of a full position, consisting of 2 or 3 entries:

  • start: the start offset of the span, in characters from start of file
  • end : the end offset of the span
  • point: if given, the offset where a single ^ would be logically placed

Spans are encoded according to the following format in little endian: Start: unsigned 26 Bits (works for source files up to 64M) End: unsigned 26 Bits Point: unsigned 12 Bits relative to start NoSpan encoded as -1L (this is a normally invalid span because point would lie beyond end).

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Spans.type
object Symbols

Symbols for all kinds of definitions in Scala programs.

Symbols for all kinds of definitions in Scala programs.

Every definition, like classes, defs, types and type parameters, is associated with a Symbol. Symbols are organized in a hierarchy, depending on what kind of definitions they represent.

Symbol
|
+- PackageSymbol                   any package, including the root package, the empty package, and nested packages
|
+- TermOrTypeSymbol                   any term or type symbol, i.e., not a package
   |
   +- TermSymbol                      any term definition:
   |                                  `val`, `var`, `def`, term param, term capture, `object` value
   |
   +- TypeSymbol                      any definition for a type
      +- ClassSymbol                  definition for a `class`, `trait`, or the module class of an `object`
      +- TypeSymbolWithBounds         any other kind of type: `type` definitions, type params, type captures
         +- TypeMemberSymbol          `type` definition, further refined through its `typeDef`
         +- TypeParamSymbol
            +- ClassTypeParamSymbol   type parameter of a class
            +- LocalTypeParamSymbol   any other type parameter

Additionally, PackageSymbol and ClassSymbol extend DeclaringSymbol. Declaring symbols are the ones that contain declarations, which can be looked up with their names.

TypeMemberSymbols exist in 3 flavors, indicated by their typeDef field, of type TypeMemberDefinition:

  • TypeAlias(alias): type alias of the form type T = alias
  • AbstractType(bounds): abstract type member of the form type T >: bounds.low <: bounds.high
  • OpaqueTypeAlias(bounds, alias): opaque type alias of the form type T >: bounds.low <: bounds.high = alias

The main property a TermSymbol is its declaredType, which is a Type. All TypeSymbolWithBounds have bounds of type TypeBounds, which are often used as their primary characteristic. ClassSymbols are entirely defined by themselves.

With the exception of the root package symbol, all symbols have an owner which is another Symbol.

All symbols also have a name. It is a TypeName for TypeSymbols, and a TermName for TermSymbols and PackageSymbols.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Symbols.type
object Trees

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Trees.type
object Types

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Types.type