/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . r . ins pe ctions . classes . r 6 Ċ Ċ import Ġcom . intellij . code Inspection . Local Inspection Tool Session Ċ import Ġcom . intellij . code Inspection . Problem Highlight Type Ċ import Ġcom . intellij . code Inspection . Problems Holder Ċ import Ġcom . intellij . psi . Psi Element Visitor Ċ import Ġorg . jetbrains . r . R Bundle Ċ import Ġorg . jetbrains . r . classes . r 6 . R 6 Class Info Util Ċ import Ġorg . jetbrains . r . ins pe ctions . R Inspection Ċ import Ġorg . jetbrains . r . psi . api . R Call Expression Ċ import Ġorg . jetbrains . r . psi . api . R StringLiteral Expression Ċ import Ġorg . jetbrains . r . psi . api . R Visitor Ċ import Ġorg . jetbrains . r . psi . isFunction From Library Ċ Ċ class ĠUn matching R 6 ClassName Inspection Ġ: ĠR Inspection () Ġ{ ĊĠ Ġoverride Ġfun Ġget DisplayName () Ġ= ĠR Bundle . message (" inspection . r 6 class . naming . convention . classname ") ĊĊĠ Ġoverride Ġfun Ġbuild Visitor ( holder : ĠPro blems Holder , Ġis On The Fly : ĠBoolean , Ġsession : ĠLocal Inspection Tool Session ): ĠPsi Element Visitor Ġ{ ĊĠĠĠ Ġreturn ĠVisitor ( holder ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠVisitor ( private Ġval Ġmy Problem Holder : ĠPro blems Holder ) Ġ: ĠR Visitor () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġvisit Call Expression ( call : ĠR Call Expression ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! call . isFunction From Library ( R 6 Class Info Util . R 6 Create Class Method , ĠR 6 Class Info Util . R 6 PackageName )) Ġreturn ĊĠĠĠĠĠ Ġval ĠclassName Expression Ġ= Ġcall . argument List . expression List . first OrNull () Ġas ? ĠR StringLiteral Expression Ġ?: Ġreturn ĊĠĠĠĠĠ Ġval ĠclassName Ġ= ĠclassName Expression . name Ġ?: Ġreturn ĊĠĠĠĠĠ Ġval Ġuser Class Variable Name Ġ= ĠR 6 Class Info Util . get Associated ClassName From R 6 Class Call ( call ) Ġ?: Ġreturn ĊĊĠĠĠĠĠ Ġif Ġ( className Ġ!= Ġuser Class Variable Name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Problem Holder . register Problem ( className Expression , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR Bundle . message (" inspection . r 6 class . naming . convention . classname ", ĠclassName ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProblem Highlight Type . GENERIC _ ERROR ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }