package Ġio . github . intellij . d language . ins pe ctions Ċ Ċ import Ġcom . intellij . code Inspection . Local Inspection Tool Ċ import Ġcom . intellij . code Inspection . Problems Holder Ċ import Ġcom . intellij . psi . Psi Element Visitor Ċ import Ġcom . intellij . psi . util . Psi Tree Util . find Children OfType Ċ import Ġio . github . intellij . d language . D lang Bundle Ċ import Ġio . github . intellij . d language . psi . DL anguage Return Statement Ċ import Ġio . github . intellij . d language . psi . D lang Visitor Ċ import Ġio . github . intellij . d language . psi . impl . named . DL anguage Function Declaration Impl Ċ import Ġio . github . intellij . d language . quick fix . Make Function Void Ċ Ċ class ĠAuto Function Without Return Ġ: ĠLocal Inspection Tool () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetDescription FileName (): ĠString Ġ= Ġ" Auto Function Without Return . html " ĊĠĠĠ Ġoverride Ġfun Ġget DisplayName (): ĠString Ġ= Ġ" Auto Function Without Return " ĊĠĠĠ Ġoverride Ġfun Ġget Group DisplayName (): ĠString Ġ= ĠD lang Bundle . message (" d . ins pe ctions . group name ") ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Visitor ( holder : ĠPro blems Holder , Ġis On The Fly : ĠBoolean ): ĠPsi Element Visitor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAuto Function Return Visitor ( holder ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠAuto Function Return Visitor ( val Ġholder : ĠPro blems Holder ) Ġ: ĠD lang Visitor () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġvisit Function Declaration ( o : ĠD Language Function Declaration Impl ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( should Warn ( o )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . register Problem ( o , Ġ" Don 't Ġcreate Ġauto Ġfunctions Ġwithout Ġreturn Ġtypes ", ĠMake Function Void ( o )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshould Warn ( o : ĠD Language Function Declaration Impl ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! o . is Auto ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġreturn Statements Ġ= Ġfind Children OfType ( o , ĠD Language Return Statement :: class . java ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( return Statement Ġin Ġreturn Statements ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( return Statement . expression Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠ Ġ} Ċ } Ċ