/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . types Ċ Ċ import Ġorg . jetbrains . kotlin . resolve . calls . inference . Old Capt ured Type Creator Ċ import Ġorg . jetbrains . kotlin . resolve . scopes . Member Scope Ċ import Ġorg . jetbrains . kotlin . resolve . scopes . Subst it uting Scope Ċ import Ġorg . jetbrains . kotlin . types . types Approx imation . Old Capture Type Approx imator Ċ Ċ interface ĠSubst it uting Scope Provider Ġ{ ĊĠĠĠ Ġfun Ġcreate Subst it uting Scope ( worker Scope : ĠMember Scope , Ġgiven Subst it utor : ĠType Subst it utor ): ĠSubst it uting Scope ĊĊĠĠĠ Ġfun Ġprovide Capt ured Type Creator (): ĠCapt ured Type Creator ĊĊĠĠĠ Ġfun Ġprovide Approx imator (): ĠCapt ured Type Approx imator ĊĊĠĠĠ Ġval Ġis New Inference Enabled : ĠBoolean ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT : ĠSubst it uting Scope Provider Ġ= Ġobject Ġ: ĠSubst it uting Scope Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Subst it uting Scope ( worker Scope : ĠMember Scope , Ġgiven Subst it utor : ĠType Subst it utor ): ĠSubst it uting Scope Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSubst it uting Scope ( worker Scope , Ġgiven Subst it utor , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprovide Capt ured Type Creator (): ĠCapt ured Type Creator Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOld Capt ured Type Creator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprovide Approx imator (): ĠCapt ured Type Approx imator Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOld Capture Type Approx imator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġis New Inference Enabled : ĠBoolean Ġget () Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠCapt ured Type Creator Ġ{ ĊĠĠĠ Ġfun Ġcreate Capt ured Type ( type Projection : ĠType Projection ): ĠType Projection Ċ } Ċ Ċ interface ĠCapt ured Type Approx imator Ġ{ ĊĠĠĠ Ġfun Ġapproximate Capt ured Types ( type Projection : ĠType Projection ?, Ġapproximate Contr av ari ant : ĠBoolean ): ĠType Projection ? Ċ }