Might be mixed into TypeSymbol or TypeSkolem.
A name that contains no operator chars nor dollar signs.
A type carrying some annotations.
An additional checker for annotations on types.
Typed information about an annotation.
A class remembering a type instantiation for some a set of overloaded polymorphic symbols.
Precondition: zipped params/args nonEmpty.
Represents an array of classfile annotation arguments
A map to compute the asSeenFrom method
Note: constructor is protected to force everyone to use the factory method newBaseTypeSeq instead.
BoundedWildcardTypes, used only during type inference, are created in two places that I can find:
A class representing a class info
A class for class symbols
Arguments to classfile annotations (which are written to bytecode as java annotations) are either:
A common base class for intersection types and class types
A class representing a constant type.
A map to implement the contains
method.
A map to implement the contains
method.
An exception for cyclic references of symbol definitions
A binder defining data associated with De Bruijn indices.
A De Bruijn index referring to a previous type argument.
The error scope.
Used by existentialAbstraction.
A map to implement the filter
method.
A map to implement the filter
method.
Precondition: params.
To lift path dependent types into reflection, we use InstanceRefSymbols.
This should be the first trait in the linearization.
Symbol annotations parsed in Namer
(typeCompleter of
definitions) have to be lazy (#1782)
The type completer for packages.
A class representing an as-yet unevaluated type.
Represents a compile-time Constant (Boolean
, Byte
, Short
,
Char
, Int
, Long
, Float
, Double
, String
, java.lang.Class
or
an instance of a Java enumeration value).
A throwable signalling a malformed type
A class for method symbols
A class representing a method type with parameters.
A class for module class symbols Note: Not all module classes are of this type; when unpickled, we get plain class symbols!
A class for module symbols
The name class.
A class representing types with a name.
Represents a nested classfile annotation
An object representing a missing symbol
A class containing the alternatives and type prefix of an overloaded symbol.
A period is an ordinal number for a phase in a run.
A period is an ordinal number for a phase in a run. Phases in later runs have higher periods than phases in earlier runs. Later phases have higher periods than earlier phases in the same run.
A type function or the type of a polymorphic value (and thus of kind *).
An exception for cyclic references from which we can recover
A class representing intersection types with refinements of the form
<parents_0> with ... with <parents_n> { decls }
Cannot be created directly;
one should always use refinedType
for creation.
A proxy for a type (identified by field underlying
) that forwards most
operations to it.
An ordinal number for compiler runs.
An ordinal number for compiler runs. First run has number 1.
A specific annotation argument that encodes an array of bytes as an
array of Long
.
Note: constructor is protected to force everyone to use the factory methods newScope or newNestedScope instead.
A proxy for a type (identified by field underlying
) that forwards most
operations to it (for exceptions, see WrappingProxy, which forwards even more operations).
A class for singleton types of the form <prefix>.<sym.name>.type
.
A base class for types that represent a single value (single-types and this-types).
A base class for types that defer some operations to their immediate supertype.
A base class to compute all substitutions
A map to implement the substSym
method.
A map to implement the substThis
method.
A map to implement the subst
method.
The class for all symbols
A class for term symbols
A class for this-types of the form <sym>.
The standard completer for top-level classes
Substitute symbols in from
with symbols in to
.
A cache that maintains a bijection between Java reflection type J
and Scala reflection type S
.
The base class for all types
A class for the bounds of abstract types and type parameters
A class expressing upper and lower bounds constraints of type variables, as well as their instantiations.
A throwable signalling a type error
A prototype for mapping a function over all possible types
A class for named types of the form
<prefix>.<sym.name>[args]
Cannot be created directly; one should always use typeRef
for creation.
A class for type parameters viewed from inside their scopes
A class of type symbols.
A class representing a type variable: not used after phase typer
.
Block factory that flattens directly nested blocks.
Block factory that flattens directly nested blocks.
casedef shorthand
casedef shorthand
the class symbol
the implementation template
A writer that writes to the current Console and is sensitive to replacement of the Console's output stream.
The empty scope (immutable).
A map to implement the contains
method.
An object representing an erroneous type
The canonical creator for implicit method types
The canonical creator for implicit method types
the class symbol
the implementation template
0-1 argument list new, based on a symbol or type.
0-1 argument list new, based on a symbol or type.
An object representing a non-existing prefix
An object representing a non-existing type
A TypeDef node which defines abstract type or type parameter for given sym
A TypeDef node which defines abstract type or type parameter for given sym
A TypeDef node which defines given sym
with given tight hand side rhs
.
A TypeDef node which defines given sym
with given tight hand side rhs
.
An object representing an unknown type, used during type inference.
Type with all top-level occurrences of abstract types replaced by their bounds
Type with all top-level occurrences of abstract types replaced by their bounds
Let registered annotation checkers adapt a tree to a given type (called by Typers.
Let registered annotation checkers adapt a tree to a given type (called by Typers.adapt). Annotation checkers that cannot do the adaption should pass the tree through unchanged.
Refine the bounds on type parameters to the given type arguments.
Refine the bounds on type parameters to the given type arguments.
Register an annotation checker.
Register an annotation checker. Typically these are added by compiler plugins.
Let all annotations checkers add extra annotations to this tree's type.
Let all annotations checkers add extra annotations to this tree's type.
Make symbol sym
a member of scope tp.decls
where thistp
is the narrowed owner type of the scope.
Make symbol sym
a member of scope tp.decls
where thistp
is the narrowed owner type of the scope.
Creator for AnnotatedTypes.
Creator for AnnotatedTypes. It returns the underlying type if annotations.isEmpty rather than walking into the assertion.
Check that the annotations on two types conform.
Check that the annotations on two types conform. To do so, consult all registered annotation checkers.
Refine the computed greatest lower bound of a list of types.
Refine the computed greatest lower bound of a list of types. All this should do is add annotations.
Refine the computed least upper bound of a list of types.
Refine the computed least upper bound of a list of types. All this should do is add annotations.
A creator for type applications
A creator for type applications
A creator for existential types where the type arguments, rather than being applied directly, are interpreted as the upper bounds of unknown types.
A creator for existential types where the type arguments, rather than being applied directly, are interpreted as the upper bounds of unknown types. For instance if the type argument list given is List(AnyRefClass), the resulting type would be e.g. Set[_ <: AnyRef] rather than Set[AnyRef] .
Convert array parameters denoting a repeated parameter of a Java method
to JavaRepeatedParamClass
types.
Convert array parameters denoting a repeated parameter of a Java method
to JavaRepeatedParamClass
types.
Perform given operation at given phase.
Perform given operation at given phase.
Turns a path into a String, introducing backquotes as necessary.
Turns a path into a String, introducing backquotes as necessary.
Create a base type sequence consisting of a single type
Create a base type sequence consisting of a single type
Since when it is to be "at" a phase is inherently ambiguous, a couple unambiguously named methods.
Since when it is to be "at" a phase is inherently ambiguous, a couple unambiguously named methods.
Does this type have a prefix that begins with a type variable, or is it a refinement type? For type prefixes that fulfil this condition, type selections with the same name of equal (wrt) =:= prefixes are considered equal wrt =:=
Does this type have a prefix that begins with a type variable, or is it a refinement type? For type prefixes that fulfil this condition, type selections with the same name of equal (wrt) =:= prefixes are considered equal wrt =:=
Java binary names, like scala/runtime/Nothing$.
Find out whether any annotation checker can adapt a tree to a given type.
Find out whether any annotation checker can adapt a tree to a given type. Called by Typers.adapt.
Check well-kindedness of type application (assumes arities are already checked) -- @M
Check well-kindedness of type application (assumes arities are already checked) -- @M
This check is also performed when abstract type members become concrete (aka a "type alias") -- then tparams.length==1 (checked one type member at a time -- in that case, prefix is the name of the type alias)
Type application is just like value application: it's "contravariant" in the sense that the type parameters of the supplied type arguments must conform to the type parameters of the required type parameters:
e.g. class Iterable[t, m[+x <: t]] --> the application Iterable[Int, List] is okay, since List's type parameter is also covariant and its bounds are weaker than <: Int
Memory to store all names sequentially.
Memory to store all names sequentially.
The Java class corresponding to given Scala class.
The Java class corresponding to given Scala class. Note: This only works for
ClassNotFoundException
for all Scala classes not in one of these categories.
The Scala class that corresponds to a given Java class.
The Scala class that corresponds to a given Java class.
The Java class
A Scala class symbol that reflects all elements of the Java class, in the form they appear in the Scala pickling info, or, if that is not available, wrapped from the Java reflection info.
Convenience functions which derive symbols by cloning.
Convenience functions which derive symbols by cloning.
Clone symbols and apply the given function to each new symbol's info.
Clone symbols and apply the given function to each new symbol's info.
the prototypical symbols
the function to apply to the infos
the newly created, info-adjusted symbols
Create the base type sequence of a compound type wuth given tp.
Create the base type sequence of a compound type wuth given tp.parents
The Scala constructor corresponding to given Java constructor.
The Scala constructor corresponding to given Java constructor.
The Java constructor
A Scala method object that corresponds to jconstr
.
Create a new MethodType of the same class as tp, i.
Create a new MethodType of the same class as tp, i.e. keep JavaMethodType
True if all three arguments have the same number of elements and the function is true for all the triples.
True if all three arguments have the same number of elements and the function is true for all the triples.
Create a class and a companion object, enter in enclosing scope, and initialize with a lazy type completer.
Create a class and a companion object, enter in enclosing scope, and initialize with a lazy type completer.
The owner of the newly created class and object
The simple name of the newly created class
The completer to be used to set the info of the class and the module
Functions which perform the standard clone/substituting on the given symbols and type, then call the creator function with the new symbols and type as arguments.
Functions which perform the standard clone/substituting on the given symbols and type, then call the creator function with the new symbols and type as arguments.
The current period.
The current period.
The current compiler run identifier.
The current compiler run identifier.
Remove any occurrences of type aliases from this type
Override with final implementation for inlining.
Override with final implementation for inlining.
Map a list of type parameter symbols to skolemized symbols, which can be deskolemized to the original type parameter.
Map a list of type parameter symbols to skolemized symbols, which can be deskolemized to the original type parameter. (A skolem is a representation of a bound variable when viewed inside its scope.) !!!Adriaan: this does not work for hk types.
Derives a new list of symbols from the given list by mapping the given list across the given function.
Derives a new list of symbols from the given list by mapping the given list across the given function. Then fixes the info of all the new symbols by substituting the new symbols for the original symbols.
the prototypical symbols
the function to create new symbols
the new list of info-adjusted symbols
Derives a new Type by first deriving new symbols as in deriveSymbols,
then performing the same oldSyms => newSyms substitution on tpe
as is
performed on the symbol infos in deriveSymbols.
Derives a new Type by first deriving new symbols as in deriveSymbols,
then performing the same oldSyms => newSyms substitution on tpe
as is
performed on the symbol infos in deriveSymbols.
the prototypical symbols
the function to create new symbols
the prototypical type
the new symbol-subsituted type
Derives a new Type by instantiating the given list of symbols as WildcardTypes.
Derives a new Type by instantiating the given list of symbols as WildcardTypes.
the symbols to replace
the new type with WildcardType replacing those syms
Convert to corresponding type parameters all skolems of method
parameters which appear in tparams
.
Convert to corresponding type parameters all skolems of method
parameters which appear in tparams
.
Substitutes the empty scope for any non-empty decls in the type.
Remove any occurrence of type <singleton> from this type and its parents
Ensure that given tree has no positions that overlap with
any of the positions of others
.
Ensure that given tree has no positions that overlap with
any of the positions of others
. This is done by
shortening the range or assigning TransparentPositions
to some of the nodes in tree
.
Does constructor meth
erase to Java method jconstr
?
This is true if the Java constructor type is the same as the Scala constructor type after performing
all Scala-specific transformations in InfoTransformers.
Does constructor meth
erase to Java method jconstr
?
This is true if the Java constructor type is the same as the Scala constructor type after performing
all Scala-specific transformations in InfoTransformers. (to be done)
Does method meth
erase to Java method jmeth
?
This is true if the Java method type is the same as the Scala method type after performing
all Scala-specific transformations in InfoTransformers.
Does method meth
erase to Java method jmeth
?
This is true if the Java method type is the same as the Scala method type after performing
all Scala-specific transformations in InfoTransformers. (to be done)
A creator for existential types.
A creator for existential types. This generates:
tpe1 where { tparams }
where tpe1
is the result of extrapolating tpe
wrt to tparams
.
Extrapolating means that type variables in tparams
occurring
in covariant positions are replaced by upper bounds, (minus any
SingletonClass markers), type variables in tparams
occurring in
contravariant positions are replaced by upper bounds, provided the
resulting type is legal wrt to stability, and does not contain any type
variable in tparams
.
The abstraction drops all type parameters that are not directly or
indirectly referenced by type tpe1
. If there are no remaining type
parameters, simply returns result type tpe
.
Perform operation p
on arguments tp1
, arg2
and print trace of computation.
Perform operation p
on arguments tp1
, arg2
and print trace of computation.
If option explaintypes
is set, print a subtype trace for op(found, required)
.
If option explaintypes
is set, print a subtype trace for op(found, required)
.
If option explaintypes
is set, print a subtype trace for found <:< required
.
If option explaintypes
is set, print a subtype trace for found <:< required
.
From a list of types, find any which take type parameters where the type parameter bounds contain references to other any types in the list (including itself.
From a list of types, find any which take type parameters where the type parameter bounds contain references to other any types in the list (including itself.)
List of symbol pairs holding the recursive type parameter and the parameter which references it.
Are we compiling for .
Are we compiling for .NET?
For fully qualified type names.
The Scala symbol that corresponds to a given Java generic declaration (class, method, or constructor)
The Scala symbol that corresponds to a given Java generic declaration (class, method, or constructor)
The greatest lower bound wrt <:< of a list of types
The greatest lower bound wrt <:< of a list of types
The greatest lower bound wrt <:< of a list of types, which have been normalized wrt elimSuper
The greatest lower bound wrt <:< of a list of types, which have been normalized wrt elimSuper
Again avoiding calling length, but the lengthCompare interface is clunky.
Again avoiding calling length, but the lengthCompare interface is clunky.
Is this symbol table part of reflexive mirror? In this case operations need to be made thread safe.
Is this symbol table part of reflexive mirror? In this case operations need to be made thread safe.
The set of all installed infotransformers.
The set of all installed infotransformers.
A creator for intersection type where intersections of a single type are replaced by the type itself.
A creator for intersection type where intersections of a single type are replaced by the type itself.
A creator for intersection type where intersections of a single type are replaced by the type itself, and repeated parent classes are merged.
A creator for intersection type where intersections of a single type are replaced by the type itself, and repeated parent classes are merged.
!!! Repeated parent classes are not merged - is this a bug in the comment or in the code?
A map from lists to compound types that have the given list as parents.
A map from lists to compound types that have the given list as parents. This is used to avoid duplication in the computation of base type sequences and baseClasses. It makes use of the fact that these two operations depend only on the parents, not on the refinement.
Is the given name valid for a top-level class? We exclude names with embedded $-signs, because these are nested classes or anonymous classes,
Is the given name valid for a top-level class? We exclude names with embedded $-signs, because these are nested classes or anonymous classes,
Does path
correspond to a Java class with that fully qualified name?
Does path
correspond to a Java class with that fully qualified name?
The isNumericValueType tests appear redundant, but without them test/continuations-neg/function3.
The isNumericValueType tests appear redundant, but without them test/continuations-neg/function3.scala goes into an infinite loop. (Even if the calls are to typeSymbolDirect.)
Is intersection of given types populated? That is, for all types tp1, tp2 in intersection for all common base classes bc of tp1 and tp2 let bt1, bt2 be the base types of tp1, tp2 relative to class bc Then: bt1 and bt2 have the same prefix, and any corresponding non-variant type arguments of bt1 and bt2 are the same
Is intersection of given types populated? That is, for all types tp1, tp2 in intersection for all common base classes bc of tp1 and tp2 let bt1, bt2 be the base types of tp1, tp2 relative to class bc Then: bt1 and bt2 have the same prefix, and any corresponding non-variant type arguments of bt1 and bt2 are the same
Is type tp a raw type?
Is type tp a raw type?
Do tp1
and tp2
denote equivalent types?
Do tp1
and tp2
denote equivalent types?
Are tps1
and tps2
lists of pairwise equivalent types?
Are tps1
and tps2
lists of pairwise equivalent types?
Are tps1
and tps2
lists of equal length such that all elements
of tps1
conform to corresponding elements of tps2
?
Are tps1
and tps2
lists of equal length such that all elements
of tps1
conform to corresponding elements of tps2
?
Do type arguments targs
conform to formal parameters tparams
?
Do type arguments targs
conform to formal parameters tparams
?
Paul: It seems the default class loader does not pick up root classes, whereas the system classloader does.
Paul: It seems the default class loader does not pick up root classes, whereas the system classloader does. Can you check with your newly acquired classloader fu whether this implementation makes sense?
The maximum allowable depth of lubs or glbs over types ts
.
The maximum allowable depth of lubs or glbs over types ts
.
This is the maximum depth of all types in the base type sequences
of each of the types ts
, plus LubGlbMargin.
The Scala package with given fully qualified name.
The Scala package with given fully qualified name. Unlike packageNameToScala
,
this one bypasses the cache.
like map2, but returns list xs
itself - instead of a copy - if function
f
maps all elements to themselves.
like map2, but returns list xs
itself - instead of a copy - if function
f
maps all elements to themselves.
A deep map on a symbol's paramss.
A deep map on a symbol's paramss.
A function implementing tp1
matches tp2
.
A function implementing tp1
matches tp2
.
The maximum number of recursions allowed in toString
The maximum number of recursions allowed in toString
Compute lub (if variance == 1
) or glb (if variance == -1
) of given list
of types tps
.
Compute lub (if variance == 1
) or glb (if variance == -1
) of given list
of types tps
. All types in tps
are typerefs or singletypes
with the same symbol.
Return Some(x)
if the computation succeeds with result x
.
Return None
if the computation fails.
The Scala method corresponding to given Java method.
The Scala method corresponding to given Java method.
The Java method
A Scala method object that corresponds to jmeth
.
All these mm methods are "deep map" style methods for mapping etc.
All these mm methods are "deep map" style methods for mapping etc. on a list of lists.
If owner
is a package class (but not the empty package) and name
is a term name, make a new package
<owner>.
If owner
is a package class (but not the empty package) and name
is a term name, make a new package
<owner>.<name>, otherwise return NoSymbol.
Exception: If owner is root and a java class with given name exists, create symbol in empty package instead.
Does a pattern of type patType
need an outer test when executed against
selector type selType
in context defined by currentOwner
?
Does a pattern of type patType
need an outer test when executed against
selector type selType
in context defined by currentOwner
?
A creator for existential types which flattens nested existentials.
A creator for existential types which flattens nested existentials.
Create a new free variable.
Create a new free variable. Its owner is NoSymbol.
Create a new scope nested in another one with which it shares its elements
Create a new scope nested in another one with which it shares its elements
Create a new scope
Create a new scope
Create a new scope with given initial elements
Create a new scope with given initial elements
Create a term name from string.
Create a term name from string.
Create a term name from the UTF8 encoded bytes in bs[offset.
Create a term name from the UTF8 encoded bytes in bs[offset..offset+len-1].
Create a term name from the characters in cs[offset.
Create a term name from the characters in cs[offset..offset+len-1]. TODO - have a mode where name validation is performed at creation time (e.g. if a name has the string "$class" in it, then fail if that string is not at the very end.)
Create a term name from the characters in cs[offset.
Create a term name from the characters in cs[offset..offset+len-1].
Create a type name from string.
Create a type name from string.
Create a type name from the UTF8 encoded bytes in bs[offset.
Create a type name from the UTF8 encoded bytes in bs[offset..offset+len-1].
Create a type name from the characters in cs[offset.
Create a type name from the characters in cs[offset..offset+len-1].
if there's a package
member object in pkgClass
, enter its members into it.
if there's a package
member object in pkgClass
, enter its members into it.
The original owner of a class.
The original owner of a class. Used by the backend to generate EnclosingMethod attributes.
The Scala package with given fully qualified name.
The Scala package with given fully qualified name.
Optionally, the Java package corresponding to a given Scala package, or None if no such Java package exists.
Optionally, the Java package corresponding to a given Scala package, or None if no such Java package exists.
The Scala package
The Scala package corresponding to given Java package
The Scala package corresponding to given Java package
used to avoid cyclies
used to avoid cyclies
The phase identifier of the given period.
The phase identifier of the given period.
The phase associated with given period.
The phase associated with given period.
The phase which has given index as identifier.
The phase which has given index as identifier.
A creator for type parameterizations that strips empty type parameter lists.
A creator for type parameterizations that strips empty type parameter lists. Use this factory method to indicate the type has kind * (it's a polymorphic value) until we start tracking explicit kinds equivalent to typeFun (except that the latter requires tparams nonEmpty).
PP to AM: I've co-opted this for where I know tparams may well be empty, and
expecting to get back tpe
in such cases. Re being "forgiving" below,
can we instead say this is the canonical creator for polyTypes which
may or may not be poly? (It filched the standard "canonical creator" name.)
Adds backticks if the name is a scala keyword.
Adds backticks if the name is a scala keyword.
The raw to existential map converts a raw type to an existential type.
The raw to existential map converts a raw type to an existential type. It is necessary because we might have read a raw type of a parameterized Java class from a class file. At the time we read the type the corresponding class file might still not be read, so we do not know what the type parameters of the type are. Therefore the conversion of raw types to existential types might not have taken place in ClassFileparser.sigToType (where it is usually done).
The canonical creator for a refined type with an initially empty scope.
The canonical creator for a refined type with an initially empty scope.
...
...
...
the canonical creator for a refined type with a given scope
the canonical creator for a refined type with a given scope
Remove all annotation checkers
Remove all annotation checkers
Repack existential types, otherwise they sometimes get unpacked in the wrong location (type inference comes up with an unexpected skolem)
Repack existential types, otherwise they sometimes get unpacked in the wrong location (type inference comes up with an unexpected skolem)
The lazy type for root.
The lazy type for root.
The run identifier of the given period.
The run identifier of the given period.
True if two lists have the same length.
True if two lists have the same length. Since calling length on linear sequences is O(n), it is an inadvisable way to test length equality.
Selects term symbol with given name and type from the defined members of prefix type
Selects term symbol with given name and type from the defined members of prefix type
Selects type symbol with given name from the defined members of prefix type
Selects type symbol with given name from the defined members of prefix type
The canonical creator for single-types
The canonical creator for single-types
The current skolemization level, needed for the algorithms in isSameType, isSubType that do constraint solving under a prefix.
The current skolemization level, needed for the algorithms in isSameType, isSubType that do constraint solving under a prefix.
Solve constraint collected in types tvars
.
Solve constraint collected in types tvars
.
All type variables to be instantiated.
The type parameters corresponding to tvars
The variances of type parameters; need to reverse solution direction for all contravariant variables.
When true
search for max solution else min.
A minimal type list which has a given list of types as its base type sequence
A minimal type list which has a given list of types as its base type sequence
Does type tp
implement symbol sym
with same or
stronger type? Exact only if sym
is a member of some
refinement type, otherwise we might return false negatives.
Does type tp
implement symbol sym
with same or
stronger type? Exact only if sym
is a member of some
refinement type, otherwise we might return false negatives.
The period at the start of run that includes period
.
The period at the start of run that includes period
.
A comment to the effect of why initialize was added to all these would be appreciated.
A comment to the effect of why initialize was added to all these would be appreciated. (We may as well start somewhere.)
Overridden when we know more about what was happening during a failure.
Overridden when we know more about what was happening during a failure.
Make each type var in this type use its original type for comparisons instead of collecting constraints.
Make each type var in this type use its original type for comparisons instead of collecting constraints.
The Scala type parameter that corresponds to a given Java type parameter.
The Scala type parameter that corresponds to a given Java type parameter.
The Java type parameter
A Scala type parameter symbol that has the same owner and name as the Java type parameter
A creator for a type functions, assuming the type parameters tps already have the right owner.
A creator for a type functions, assuming the type parameters tps already have the right owner.
A creator for anonymous type functions, where the symbol for the type function still needs to be created.
A creator for anonymous type functions, where the symbol for the type function still needs to be created.
TODO: type params of anonymous type functions, which currently can only arise from normalising type aliases, are owned by the type alias of which they are the eta-expansion higher-order subtyping expects eta-expansion of type constructors that arise from a class; here, the type params are owned by that class, but is that the right thing to do?
A collector that tests for existential types appearing at given variance in a type
A collector that tests for existential types appearing at given variance in a type
The canonical creator for typerefs todo: see how we can clean this up a bit
The canonical creator for typerefs todo: see how we can clean this up a bit
The Java class that corresponds to given Scala type.
The Java class that corresponds to given Scala type. Pre: Scala type is already transformed to Java level.
The Scala type that corresponds to given Java type
The Scala type that corresponds to given Java type
A map to convert every occurrence of a type variable to a wildcard type.
A list of the typevars in a type.
A list of the typevars in a type.
A merker object for a base type sequence that's no yet computed.
A merker object for a base type sequence that's no yet computed. used to catch inheritance cycles
A log of type variable with their original constraints.
A log of type variable with their original constraints. Used in order to undo constraints in the case of isSubType/isSameType failure.
Generate types for top-level Scala root class and root companion object from the pickled information stored in a corresponding Java class
Generate types for top-level Scala root class and root companion object from the pickled information stored in a corresponding Java class
The top-level Scala class for which info is unpickled
The top-level Scala companion object for which info is unpickled
The Java class which contains the unpickled information in a ScalaSignature or ScalaLongSignature annotation.
Assert that packages have package scopes
Assert that packages have package scopes
A map to convert every occurrence of a wildcard type to a fresh type variable
Execute op
while printing a trace of the operations on types executed.
Execute op
while printing a trace of the operations on types executed.
A position that wraps the non-empty set of trees.
A position that wraps the non-empty set of trees. The point of the wrapping position is the point of the first trees' position. If all some the trees are non-synthetic, returns a range position enclosing the non-synthetic trees Otherwise returns a synthetic offset position to point.
A position that wraps a set of trees.
A position that wraps a set of trees. The point of the wrapping position is the point of the default position. If some of the trees are ranges, returns a range position enclosing all ranges Otherwise returns default position.
Hook for extensions
Hook for extensions
(Since version Give us a reason) 2.10.0
(Since version 2.9.0)