dotty.tools.dotc.typer
Members list
Type members
Classlikes
Attributes
- Companion
- trait
- Supertypes
- Self type
-
Applications.type
Attributes
- Companion
- object
- Supertypes
- Known subtypes
- Self type
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
class Checkerclass LocalCheckertrait ReCheckingtrait NoCheckingclass Typerclass ReTyperclass InlineTyperclass TyperShow all
A typer mixin that implements type class derivation functionality
A typer mixin that implements type class derivation functionality
Attributes
- Supertypes
- Known subtypes
- Self type
Attributes
- Supertypes
- Self type
-
Docstrings.type
Handles programmable member selections of Dynamic
instances and values with structural types. Two functionalities:
Handles programmable member selections of Dynamic
instances and values with structural types. Two functionalities:
- Translates selection that does not typecheck according to the scala.Dynamic rules: foo.bar(baz) = quux ~~> foo.selectDynamic(bar).update(baz, quux) foo.bar = baz ~~> foo.updateDynamic("bar")(baz) foo.bar(x = bazX, y = bazY, baz, ...) ~~> foo.applyDynamicNamed("bar")(("x", bazX), ("y", bazY), ("", baz), ...) foo.bar(baz0, baz1, ...) ~~> foo.applyDynamic(bar)(baz0, baz1, ...) foo.bar ~~> foo.selectDynamic(bar)
The first matching rule of is applied.
- Translates member selections on structural types to calls of
selectDynamic
orapplyDynamic
on aSelectable
instance. @See handleStructural.
Attributes
- Companion
- object
- Supertypes
- Known subtypes
- Self type
Attributes
- Supertypes
- Self type
-
DynamicUnapply.type
Attributes
- Supertypes
- Self type
-
ErrorReporting.type
Lifter for eta expansion
An enumeration controlling the degree of forcing in "is-fully-defined" checks.
An enumeration controlling the degree of forcing in "is-fully-defined" checks.
Attributes
- Supertypes
- Self type
-
ForceDegree.type
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
The implicit resolution part of type checking
The implicit resolution part of type checking
Attributes
- Companion
- object
- Supertypes
- Known subtypes
- Self type
Attributes
- Companion
- class
- Supertypes
- Self type
-
ImportInfo.type
Info relating to an import clause
Info relating to an import clause
Value parameters
- isRootImport
-
true if this is one of the implicit imports of scala, java.lang, scala.Predef in the start context, false otherwise.
- qualifier
-
The import qualifier, or EmptyTree for root imports. Defined for all explicit imports from ident or select nodes.
- selectors
-
The selector clauses
- symf
-
A function that computes the import symbol defined by the clause
Attributes
- Companion
- object
- Supertypes
This trait defines the method importSuggestionAddendum
that adds an addendum to error messages suggesting additional imports.
This trait defines the method importSuggestionAddendum
that adds an addendum to error messages suggesting additional imports.
Attributes
- Supertypes
- Known subtypes
- Self type
Attributes
- Companion
- trait
- Supertypes
- Self type
-
Inferencing.type
Attributes
- Companion
- object
- Supertypes
- Known subtypes
- Self type
PostTyper doesn't run on java sources, but some checks still need to be applied.
PostTyper doesn't run on java sources, but some checks still need to be applied.
Attributes
- Supertypes
- Self type
-
JavaChecks.type
Lift all impure or complex arguments
Attributes
- Companion
- class
- Supertypes
- Self type
-
LiftComplex.type
Lift impure + lift the prefixes
Attributes
- Supertypes
- Self type
-
LiftErased.type
Lift all impure arguments
Attributes
- Companion
- class
- Supertypes
- Self type
-
LiftImpure.type
Lift all impure or complex arguments to def
s
A class that handles argument lifting. Argument lifting is needed in the following scenarios:
A class that handles argument lifting. Argument lifting is needed in the following scenarios:
- eta expansion
- applications with default arguments
- applications with out-of-order named arguments Lifting generally lifts impure expressions only, except in the case of possible default arguments, where we lift also complex pure expressions, since in that case arguments can be duplicated as arguments to default argument methods.
Attributes
- Supertypes
- Known subtypes
-
class LiftComplexobject LiftComplexobject LiftErasedobject LiftToDefsclass LiftImpureobject EtaExpansionobject LiftCoverageobject LiftImpureobject NoLiftShow all
This class creates symbols from definitions and imports and gives them lazy types.
This class creates symbols from definitions and imports and gives them lazy types.
Timeline:
During enter, trees are expanded as necessary, populating the expandedTree map. Symbols are created, and the symOfTree map is set up.
Symbol completion causes some trees to be already typechecked and typedTree entries are created to associate the typed trees with the untyped expanded originals.
During typer, original trees are first expanded using expandedTree. For each expanded member definition or import we extract and remove the corresponding symbol from the symOfTree map and complete it. We then consult the typedTree map to see whether a typed tree exists already. If yes, the typed tree is returned as result. Otherwise, we proceed with regular type checking.
The scheme is designed to allow sharing of nodes, as long as each duplicate appears in a different method.
Attributes
- Supertypes
- Known subtypes
- Self type
Attributes
- Supertypes
- Known subtypes
-
class Typer
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass SearchHistoryclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
- Self type
-
ProtoTypes.type
Type quotes '{ ... }
and splices ${ ... }
Type quotes '{ ... }
and splices ${ ... }
Attributes
- Supertypes
- Known subtypes
- Self type
Attributes
- Supertypes
- Known subtypes
-
trait NoCheckingclass Typerclass ReTyperclass InlineTyperclass Checkerclass LocalCheckerShow all
A version of Typer that keeps all symbols defined and referenced in a previously typed tree.
A version of Typer that keeps all symbols defined and referenced in a previously typed tree.
All definition nodes keep their symbols. All leaf nodes for idents, selects, and TypeTrees keep their types. Indexing is a no-op.
Otherwise, everything is as in Typer.
Attributes
- Supertypes
-
trait ReCheckingclass Typertrait Derivingtrait QuotesAndSplicestrait Checkingtrait Dynamictrait Inferencingtrait ImportSuggestionstrait Implicitstrait Applicationstrait Compatibilitytrait TypeAssignerclass Namerclass Objecttrait Matchableclass AnyShow all
- Known subtypes
Post-attribution checking and transformation, which fulfills the following roles
Post-attribution checking and transformation, which fulfills the following roles
- This phase performs the following checks.
- only one overloaded alternative defines default arguments
- applyDynamic methods are not overloaded
- all overrides conform to rules laid down by
checkAllOverrides
. - any value classes conform to rules laid down by
checkDerivedValueClass
. - this(...) constructor calls do not forward reference other definitions in their block (not even lazy vals).
- no forward reference in a local block jumps over a non-lazy val definition.
- a class and its companion object do not both define a class or module with the same name.
-
It warns about references to symbols labeled deprecated or migration.
-
It eliminates macro definitions.
-
It makes members not private where necessary. The following members cannot be private in the Java model:
- term members of traits
- the primary constructor of a value class
- the parameter accessor of a value class
- members accessed from an inner or companion class. All these members are marked as NotJavaPrivate. Unlike in Scala 2.x not-private members keep their name. It is up to the backend to find a unique expanded name for them. The rationale to do name changes that late is that they are very fragile.
todo: But RefChecks is not done yet. It's still a somewhat dirty port from the Scala 2 version. todo: move untrivial logic to their own mini-phases
Attributes
- Companion
- object
- Supertypes
- Self type
Records the history of currently open implicit searches.
Records the history of currently open implicit searches.
A search history maintains a list of open implicit searches (openSearchPairs
) a shortcut flag indicating whether any of these are by name (byname
) and a reference to the root search history (root
) which in turn maintains a possibly empty dictionary of recursive implicit terms constructed during this search.
A search history provides operations to create a nested search history, check for divergence, enter by name references and definitions in the implicit dictionary, lookup recursive references and emit a complete implicit dictionary when the outermost search is complete.
Attributes
- Supertypes
- Known subtypes
-
class OpenSearchclass SearchRoot
The state corresponding to the outermost context of an implicit searcch.
The state corresponding to the outermost context of an implicit searcch.
Attributes
- Supertypes
Attributes
- Companion
- class
- Supertypes
- Self type
-
Synthesizer.type
Attributes
- Companion
- class
- Supertypes
- Self type
-
TermRefSet.type
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
object TypeAssignerclass Typerclass ReTyperclass InlineTyperclass Typerclass Checkerclass LocalCheckerShow all
Attributes
- Companion
- trait
- Supertypes
- Self type
-
TypeAssigner.type
Typecheck trees, the main entry point is typed
.
Typecheck trees, the main entry point is typed
.
Value parameters
- nestingLevel
-
The nesting level of the
scope
of this Typer.
Attributes
- Companion
- object
- Supertypes
-
trait Derivingtrait QuotesAndSplicestrait Checkingtrait Dynamictrait Inferencingtrait ImportSuggestionstrait Implicitstrait Applicationstrait Compatibilitytrait TypeAssignerclass Namerclass Objecttrait Matchableclass AnyShow all
- Known subtypes
Value parameters
- addRootImports
-
Set to false in the REPL. Calling ImportInfo.withRootImports on the Context for each CompilationUnit causes dotty.tools.repl.ScriptedTests to fail.
Attributes
- Companion
- object
- Supertypes
Attributes
- Companion
- class
- Supertypes
- Self type
-
TyperPhase.type
Provides check
method to check that all top-level definitions in tree are variance correct. Does not recurse inside methods. The method should be invoked once for each Template.
Provides check
method to check that all top-level definitions in tree are variance correct. Does not recurse inside methods. The method should be invoked once for each Template.
Attributes
- Companion
- class
- Supertypes
- Self type
-
VarianceChecker.type