/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* Ġ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 . codegen . range Ċ Ċ import Ġorg . jetbrains . kotlin . builtins . Kotlin Built Ins Ċ import Ġorg . jetbrains . kotlin . builtins . Unsigned Types Ċ import Ġorg . jetbrains . kotlin . codegen . Asm Util . is Primitive Number Class Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors .* Ċ import Ġorg . jetbrains . kotlin . diagnostics . Psi Diagnostic Utils Ċ import Ġorg . jetbrains . kotlin . name . Class Id Ċ import Ġorg . jetbrains . kotlin . name . Fq Name Ċ import Ġorg . jetbrains . kotlin . psi . Kt For Expression Ċ import Ġorg . jetbrains . kotlin . resolve . Binding Context Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor Utils Ċ import Ġorg . jetbrains . kotlin . resolve . descriptor Util . built Ins Ċ import Ġorg . jetbrains . kotlin . resolve . descriptor Util . fq Name Safe Ċ import Ġorg . jetbrains . kotlin . resolve . descriptor Util . module Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Ċ Ċ fun Ġis Primitive Range ( range Type : ĠKotlin Type ) Ġ= ĊĠĠĠ Ġis ClassType With F qn ( range Type , ĠPR IMIT IVE _ RANGE _ FQ NS ) Ċ Ċ fun Ġis Unsigned Range ( range Type : ĠKotlin Type ): ĠBoolean Ġ= ĊĠĠĠ Ġis ClassType With F qn ( range Type , ĠUNSIGNED _ RANGE _ FQ NS ) Ċ Ċ fun Ġis Primitive Progress ion ( range Type : ĠKotlin Type ) Ġ= ĊĠĠĠ Ġis ClassType With F qn ( range Type , ĠPR IMIT IVE _ PROGRESS ION _ FQ NS ) Ċ Ċ fun Ġis Unsigned Progress ion ( range Type : ĠKotlin Type ) Ġ= ĊĠĠĠ Ġis ClassType With F qn ( range Type , ĠUNSIGNED _ PROGRESS ION _ FQ NS ) Ċ Ċ private Ġval ĠKotlin Type . class F qn String : ĠString ? ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdeclaration Descriptor Ġ= Ġconstructor . declaration Descriptor Ġas ? ĠClass Descriptor Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġf qn Ġ= ĠDescriptor Utils . getF q Name ( declaration Descriptor ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( fq n . is Safe ) Ġf qn . asString () Ġelse Ġnull ĊĠĠĠ Ġ} Ċ Ċ private Ġfun Ġis ClassType With F qn ( kotlin Type : ĠKotlin Type , Ġfq ns : ĠSet < String >): ĠBoolean Ġ= ĊĠĠĠ Ġkotlin Type . class F qn String Ġin Ġfq ns Ċ Ċ internal Ġconst Ġval ĠCHAR _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Char Range " Ċ internal Ġconst Ġval ĠINT _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Int Range " Ċ internal Ġconst Ġval ĠLONG _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Long Range " Ċ private Ġval ĠPR IMIT IVE _ RANGE _ FQ NS Ġ= Ġset Of ( CHAR _ RANGE _ FQ N , ĠINT _ RANGE _ FQ N , ĠLONG _ RANGE _ FQ N ) Ċ Ċ internal Ġconst Ġval ĠCHAR _ PROGRESS ION _ FQ N Ġ= Ġ" kotlin . ranges . Char Progress ion " Ċ internal Ġconst Ġval ĠINT _ PROGRESS ION _ FQ N Ġ= Ġ" kotlin . ranges . Int Progress ion " Ċ internal Ġconst Ġval ĠLONG _ PROGRESS ION _ FQ N Ġ= Ġ" kotlin . ranges . Long Progress ion " Ċ private Ġval ĠPR IMIT IVE _ PROGRESS ION _ FQ NS Ġ= Ġset Of ( CHAR _ PROGRESS ION _ FQ N , ĠINT _ PROGRESS ION _ FQ N , ĠLONG _ PROGRESS ION _ FQ N ) Ċ Ċ private Ġconst Ġval ĠCLO SED _ FLOAT _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Closed Float Range " Ċ private Ġconst Ġval ĠCLO SED _ DOUBLE _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Closed Double Range " Ċ private Ġconst Ġval ĠCLO SED _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Closed Range " Ċ private Ġconst Ġval ĠCLO SED _ FLOAT ING _ POINT _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Closed Floating Point Range " Ċ private Ġconst Ġval ĠCOMP AR ABLE _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . Comparable Range " Ċ Ċ internal Ġconst Ġval ĠUINT _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . UInt Range " Ċ internal Ġconst Ġval ĠULONG _ RANGE _ FQ N Ġ= Ġ" kotlin . ranges . UL ong Range " Ċ private Ġval ĠUNSIGNED _ RANGE _ FQ NS Ġ= Ġset Of ( UINT _ RANGE _ FQ N , ĠULONG _ RANGE _ FQ N ) Ċ Ċ internal Ġconst Ġval ĠUINT _ PROGRESS ION _ FQ N Ġ= Ġ" kotlin . ranges . UInt Progress ion " Ċ internal Ġconst Ġval ĠULONG _ PROGRESS ION _ FQ N Ġ= Ġ" kotlin . ranges . UL ong Progress ion " Ċ private Ġval ĠUNSIGNED _ PROGRESS ION _ FQ NS Ġ= Ġset Of ( UINT _ PROGRESS ION _ FQ N , ĠULONG _ PROGRESS ION _ FQ N ) Ċ Ċ fun Ġget Range Or Progress ion ElementType ( range Type : ĠKotlin Type ): ĠKotlin Type ? Ġ{ ĊĠĠĠ Ġval Ġrange Class Descriptor Ġ= Ġrange Type . constructor . declaration Descriptor Ġas ? ĠClass Descriptor Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġbuilt Ins Ġ= Ġrange Class Descriptor . built Ins ĊĊĠĠĠ Ġreturn Ġwhen Ġ( range Class Descriptor . fq Name Safe . asString ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠCHAR _ RANGE _ FQ N , ĠCHAR _ PROGRESS ION _ FQ N Ġ-> Ġbuilt Ins . char Type ĊĠĠĠĠĠĠĠ ĠINT _ RANGE _ FQ N , ĠINT _ PROGRESS ION _ FQ N Ġ-> Ġbuilt Ins . int Type ĊĠĠĠĠĠĠĠ ĠLONG _ RANGE _ FQ N , ĠLONG _ PROGRESS ION _ FQ N Ġ-> Ġbuilt Ins . long Type ĊĊĠĠĠĠĠĠĠ ĠCLO SED _ FLOAT _ RANGE _ FQ N Ġ-> Ġbuilt Ins . float Type ĊĠĠĠĠĠĠĠ ĠCLO SED _ DOUBLE _ RANGE _ FQ N Ġ-> Ġbuilt Ins . double Type ĊĊĠĠĠĠĠĠĠ ĠCLO SED _ RANGE _ FQ N Ġ-> Ġrange Type . arguments . single OrNull ()?. type ĊĠĠĠĠĠĠĠ ĠCLO SED _ FLOAT ING _ POINT _ RANGE _ FQ N Ġ-> Ġrange Type . arguments . single OrNull ()?. type ĊĠĠĠĠĠĠĠ ĠCOMP AR ABLE _ RANGE _ FQ N Ġ-> Ġrange Type . arguments . single OrNull ()?. type ĊĊĠĠĠĠĠĠĠ ĠUINT _ RANGE _ FQ N , ĠUINT _ PROGRESS ION _ FQ N Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrange Class Descriptor . find Type In Module By TopLevel Class Fq Name ( Kotlin Built Ins . FQ _ NAMES . u Int Fq Name ) ĊĊĠĠĠĠĠĠĠ ĠULONG _ RANGE _ FQ N , ĠULONG _ PROGRESS ION _ FQ N Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrange Class Descriptor . find Type In Module By TopLevel Class Fq Name ( Kotlin Built Ins . FQ _ NAMES . u Long Fq Name ) ĊĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠDeclaration Descriptor . find Type In Module By TopLevel Class Fq Name ( fq Name : ĠF q Name ) Ġ= ĊĠĠĠ Ġmodule . find Class Ac ross Module Dependencies ( Class Id . top Level ( fq Name )) ?. default Type Ċ Ċ fun ĠBinding Context . getElement Type ( for Expression : ĠK t For Expression ): ĠKotlin Type Ġ{ ĊĠĠĠ Ġval Ġloop Range Ġ= Ġfor Expression . loop Range !! ĊĠĠĠ Ġval Ġnext Call Ġ= Ġget ( Binding Context . LOOP _ RANGE _ NEXT _ RESOL VED _ CALL , Ġloop Range ) ĊĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠAssertionError (" No Ġnext () Ġfunction Ġ" Ġ+ ĠPsi Diagnostic Utils . at Location ( loop Range )) ĊĠĠĠ Ġreturn Ġnext Call . result ing Descriptor . returnType !! Ċ } Ċ Ċ fun Ġis Primitive Number Range To ( range To : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġ" range To " Ġ== Ġrange To . name . asString () Ġ&& Ġis Primitive Number Class Descriptor ( range To . containing Declaration ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Primitive Range To Extension ( range To ) Ċ Ċ fun Ġis Unsigned Integer Range To ( range To : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġ" range To " Ġ== Ġrange To . name . asString () Ġ&& Ġis Unsigned Integer Class Descriptor ( range To . containing Declaration ) Ċ Ċ fun Ġis Unsigned Integer Class Descriptor ( descriptor : ĠDeclaration Descriptor ?) Ġ= ĊĠĠĠ Ġdescriptor Ġ!= Ġnull Ġ&& ĠUnsigned Types . is Unsigned Class ( descriptor ) Ċ Ċ private Ġinline Ġfun ĠCallable Descriptor . is TopLevel Extension On Type ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġpackage FQ N : ĠString , ĊĠĠĠ Ġreceiver Type Predicate : Ġ( Kotlin Type ) Ġ-> ĠBoolean Ċ ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ(! this . is TopLevel In Package ( name , Ġpackage FQ N )) Ġreturn Ġfalse ĊĠĠĠ Ġval Ġextension Receiver Type Ġ= Ġoriginal . extension Receiver Parameter ?. type Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġreceiver Type Predicate ( extension Receiver Type ) Ċ } Ċ Ċ private Ġfun Ġis Primitive Range To Extension ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" range To ", Ġ" kotlin . ranges ") Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Primitive Type ( it ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Primitive Number Down To ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" down To ", Ġ" kotlin . ranges ") Ġ{ ĊĠĠĠĠĠĠĠ Ġis Primitive Number Class Descriptor ( it . constructor . declaration Descriptor ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Unsigned Integer Down To ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" down To ", Ġ" kotlin . ranges ") Ġ{ ĊĠĠĠĠĠĠĠ Ġis Unsigned Integer Class Descriptor ( it . constructor . declaration Descriptor ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Primitive Number Until ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" until ", Ġ" kotlin . ranges ") Ġ{ ĊĠĠĠĠĠĠĠ Ġis Primitive Number Class Descriptor ( it . constructor . declaration Descriptor ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Unsigned Integer Until ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" until ", Ġ" kotlin . ranges ") Ġ{ ĊĠĠĠĠĠĠĠ Ġis Unsigned Integer Class Descriptor ( it . constructor . declaration Descriptor ) ĊĠĠĠ Ġ} Ċ Ċ fun ĠisArray Or Primitive Array Indices ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" indices ", Ġ" kotlin . collections ") Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Built Ins . isArray ( it ) Ġ|| ĠKotlin Built Ins . is Primitive Array ( it ) ĊĠĠĠ Ġ} Ċ Ċ fun ĠisArray Or Primitive Array With Index ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" with Index ", Ġ" kotlin . collections ") Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Built Ins . isArray ( it ) Ġ|| ĠKotlin Built Ins . is Primitive Array ( it ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Collection Indices ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" indices ", Ġ" kotlin . collections ") Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Collection Or Nullable Collection ( it ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Iterable With Index ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" with Index ", Ġ" kotlin . collections ") Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Iterable Or Nullable Iterable ( it ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Sequence With Index ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" with Index ", Ġ" kotlin . sequences ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Descriptor Ġ= Ġit . constructor . declaration Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġtype Descriptor . is TopLevel In Package (" Sequence ", Ġ" kotlin . sequences ") ĊĠĠĠ Ġ} Ċ Ċ fun Ġis CharSequence Indices ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" indices ", Ġ" kotlin . text ") Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Built Ins . is CharSequence Or Nullable CharSequence ( it ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis CharSequence With Index ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" with Index ", Ġ" kotlin . text ") Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Built Ins . is CharSequence Or Nullable CharSequence ( it ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Comparable Range To ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" range To ", Ġ" kotlin . ranges ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextension Receiver TypeDescriptor Ġ= Ġit . constructor . declaration Descriptor Ġas ? ĠType Parameter Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġupper Bound Type Ġ= Ġextension Receiver TypeDescriptor . upper Bounds . single OrNull () Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġupper Bound Class Descriptor Ġ= Ġupper Bound Type . constructor . declaration Descriptor Ġas ? ĠClass Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġupper Bound Class Descriptor . is TopLevel In Package (" Comparable ", Ġ" kotlin ") ĊĠĠĠ Ġ} Ċ Ċ fun Ġis Closed Range Contains ( descriptor : ĠCallable Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( descriptor . name . asString () Ġ!= Ġ" contains ") Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcontaining Class Descriptor Ġ= Ġdescriptor . containing Declaration Ġas ? ĠClass Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ(! containing Class Descriptor . is TopLevel In Package (" Closed Range ", Ġ" kotlin . ranges ")) Ġreturn Ġfalse ĊĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ fun Ġis Primitive Range Contains ( descriptor : ĠCallable Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( descriptor . name . asString () Ġ!= Ġ" contains ") Ġreturn Ġfalse ĊĠĠĠ Ġval Ġdispatch Receiver Type Ġ= Ġdescriptor . dispatch Receiver Parameter ?. type Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ(! is Primitive Range ( dispatch Receiver Type )) Ġreturn Ġfalse ĊĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ fun Ġis Unsigned Integer Range Contains ( descriptor : ĠCallable Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( descriptor . name . asString () Ġ!= Ġ" contains ") Ġreturn Ġfalse ĊĠĠĠ Ġval Ġdispatch Receiver Type Ġ= Ġdescriptor . dispatch Receiver Parameter ?. type Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ(! is Unsigned Range ( dispatch Receiver Type )) Ġreturn Ġfalse ĊĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ fun Ġis Primitive Number Range Extension Contains Primitive Number ( descriptor : ĠCallable Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( descriptor . name . asString () Ġ!= Ġ" contains ") Ġreturn Ġfalse ĊĊĠĠĠ Ġval Ġextension Receiver Type Ġ= Ġdescriptor . extension Receiver Parameter ?. type Ġ?: Ġreturn Ġfalse ĊĊĠĠĠ Ġval Ġrange ElementType Ġ= Ġget Range Or Progress ion ElementType ( extension Receiver Type ) Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ(! is Primitive Number Type ( range ElementType )) Ġreturn Ġfalse ĊĊĠĠĠ Ġval Ġargument Type Ġ= Ġdescriptor . value Parameters . single OrNull ()?. type Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ(! is Primitive Number Type ( argument Type )) Ġreturn Ġfalse ĊĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ fun Ġis Primitive Progress ion Reverse ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" reversed ", Ġ" kotlin . ranges ") Ġ{ ĊĠĠĠĠĠĠĠ Ġis Primitive Progress ion ( it ) ĊĠĠĠ Ġ} Ċ Ċ private Ġfun Ġis Primitive Number Type ( type : ĠKotlin Type ) Ġ= ĊĠĠĠ ĠKotlin Built Ins . is Byte ( type ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Short ( type ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Int ( type ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Char ( type ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Long ( type ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Float ( type ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Built Ins . is Double ( type ) Ċ Ċ fun Ġis Closed Floating Point Range Contains ( descriptor : ĠCallable Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( descriptor . name . asString () Ġ!= Ġ" contains ") Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcontaining Class Descriptor Ġ= Ġdescriptor . containing Declaration Ġas ? ĠClass Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ(! containing Class Descriptor . is TopLevel In Package (" Closed Floating Point Range ", Ġ" kotlin . ranges ")) Ġreturn Ġfalse ĊĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ fun Ġis CharSequence Iterator ( descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ Ġdescriptor . is TopLevel Extension On Type (" iterator ", Ġ" kotlin . text ") Ġ{ ĊĠĠĠĠĠĠĠ Ġit . constructor . declaration Descriptor ?. is TopLevel In Package (" CharSequence ", Ġ" kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfalse ĊĠĠĠ Ġ} Ċ