trait Infer extends Checkable
This trait contains methods related to type parameter inference.
- Self Type
- Analyzer
- Source
- Infer.scala
- Version
1.0
- Alphabetic
- By Inheritance
- Infer
- Checkable
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
-
trait
InferCheckable extends AnyRef
- Definition Classes
- Checkable
- final case class AdjustedTypeArgs(okParams: List[Global.Symbol], okArgs: List[Global.Type], undetParams: List[Global.Symbol], allArgs: List[Global.Type]) extends Product with Serializable
-
abstract
class
Inferencer extends Analyzer.InferencerContextErrors with Analyzer.InferCheckable
The context-dependent inferencer part
- class NoInstance extends Throwable with ControlThrowable
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (Infer, B)
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def ensuring(cond: (Infer) ⇒ Boolean, msg: ⇒ Any): Infer
- def ensuring(cond: (Infer) ⇒ Boolean): Infer
- def ensuring(cond: Boolean, msg: ⇒ Any): Infer
- def ensuring(cond: Boolean): Infer
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
falseIfNoInstance(body: ⇒ Boolean): Boolean
- Annotations
- @inline()
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
formalTypes(formals: List[Global.Type], numArgs: Int, removeByName: Boolean = true, removeRepeated: Boolean = true): List[Global.Type]
The formal parameter types corresponding to
formals
.The formal parameter types corresponding to
formals
. Ifformals
has a repeated last parameter, a list of (numArgs - numFormals + 1) copies of its type is appended to the other formals. By-name types are replaced with their underlying type.- removeByName
allows keeping ByName parameters. Used in NamesDefaults.
- removeRepeated
allows keeping repeated parameter (if there's one argument). Used in NamesDefaults.
-
def
freshVar(tparam: Global.Symbol): Global.TypeVar
A fresh type variable with given type parameter as origin.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
normalize(tp: Global.Type): Global.Type
Automatically perform the following conversions on expression types: A method type becomes the corresponding function type.
Automatically perform the following conversions on expression types: A method type becomes the corresponding function type. A nullary method type becomes its result type. Implicit parameters are skipped. This method seems to be performance critical.
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
propagateKnownTypes(from: Global.Type, to: Global.Symbol): Global.Type
The applied type of class 'to' after inferring anything possible from the knowledge that 'to' must also be of the type given in 'from'.
The applied type of class 'to' after inferring anything possible from the knowledge that 'to' must also be of the type given in 'from'.
- Definition Classes
- Checkable
- def skipImplicit(tp: Global.Type): Global.Type
-
def
solvedTypes(tvars: List[Global.TypeVar], tparams: List[Global.Symbol], getVariance: Extractor[Global.Symbol], upper: Boolean, depth: Depth): List[Global.Type]
Solve constraint collected in types
tvars
.Solve constraint collected in types
tvars
.- tvars
All type variables to be instantiated.
- tparams
The type parameters corresponding to
tvars
- getVariance
Function to extract variances of type parameters; we need to reverse solution direction for all contravariant variables.
- upper
When
true
search for max solution else min.
- Exceptions thrown
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def →[B](y: B): (Infer, B)
- object approximateAbstracts extends Global.TypeMap
-
object
instantiate extends Global.TypeMap
Map every TypeVar to its constraint.inst field.
Map every TypeVar to its constraint.inst field. throw a NoInstance exception if a NoType or WildcardType is encountered.
- object toOrigin extends Global.TypeMap
Deprecated Value Members
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Infer to StringFormat[Infer] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
The Scala compiler and reflection APIs.