// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ċ package Ġorg . jetbrains . kotlin . idea . ins pe ctions Ċ Ċ import Ġcom . intellij . code Inspection . Local Quick Fix Ċ import Ġcom . intellij . code Inspection . Problem Descriptor Ċ import Ġcom . intellij . code Inspection . Problems Holder Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġorg . jetbrains . kotlin . idea . Kotlin Bundle Ċ import Ġorg . jetbrains . kotlin . idea . cache s . resolve . analyze Ċ import Ġorg . jetbrains . kotlin . idea . core . setType Ċ import Ġorg . jetbrains . kotlin . psi . Kt Parameter Ċ import Ġorg . jetbrains . kotlin . psi . Kt Parameter List Ċ import Ġorg . jetbrains . kotlin . psi . primary Constructor Visitor Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . containing Class Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . start Offset Ċ import Ġorg . jetbrains . kotlin . resolve . Binding Context Ċ import Ġorg . jetbrains . kotlin . resolve . lazy . Body Resolve Mode Ċ import Ġorg . jetbrains . kotlin . types . is Nullable Ċ import Ġorg . jetbrains . kotlin . types . type Util . make Nullable Ċ Ċ class ĠSelf Reference Constructor Parameter Inspection Ġ: ĠAbstract Kotlin Inspection () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġbuild Visitor ( holder : ĠPro blems Holder , Ġis On The Fly : ĠBoolean ) Ġ= Ġprimary Constructor Visitor ( fun ( constructor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= Ġconstructor . value Parameter List ?. self Reference Parameter () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġrange In Element Ġ= Ġparameter . type Reference ?. text Range ?. shift Right (- parameter . start Offset ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġholder . register Problem ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparameter , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrange In Element , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Bundle . message (" constructor . has . non . null . self . reference . parameter "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConvert To Nullable Type Fix () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġprivate Ġfun ĠK t Parameter List . self Reference Parameter (): ĠK t Parameter ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontaining Class Ġ= Ġthis . containing Class () Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval ĠclassName Ġ= Ġcontaining Class . name Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= Ġthis . parameters . first OrNull Ġ{ Ġit . type Reference ?. text Ġ== ĠclassName Ġ} Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( parameter . is Var Arg ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġtype Reference Ġ= Ġparameter . type Reference Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġanalyze ( Body Resolve Mode . PAR TIAL ) ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġcontext [ Binding Context . TYPE , Ġtype Reference ] Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( type . is Nullable ()) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( type . constructor . declaration Descriptor Ġ!= Ġcontext [ Binding Context . DECL AR ATION _ TO _ DESCRIPTOR , Ġcontaining Class ]) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn Ġparameter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠConvert To Nullable Type Fix Ġ: ĠLocal Quick Fix Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetName () Ġ= ĠKotlin Bundle . message (" convert . to . nullable . type . fix . text ") ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Family Name () Ġ= Ġname ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġapply Fix ( project : ĠProject , Ġdescriptor : ĠProblem Descriptor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= Ġdescriptor . psi Element Ġas ? ĠK t Parameter Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Reference Ġ= Ġparameter . type Reference Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġparameter . analyze ( Body Resolve Mode . PAR TIAL )[ Binding Context . TYPE , Ġtype Reference ] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparameter . setType ( type . make Nullable ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }