package Ġio . gitlab . art urb os ch . de te kt . rules . bugs Ċ Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Code S mell Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Config Ċ import Ġio . gitlab . art urb os ch . de te kt . api . De bt Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Entity Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Issue Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Rule Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Severity Ċ import Ġio . gitlab . art urb os ch . de te kt . api . internal . Requires Type Resolution Ċ import Ġorg . jetbrains . kotlin . builtins . Kotlin Built Ins Ċ import Ġorg . jetbrains . kotlin . com . intellij . psi . Psi Comment Ċ import Ġorg . jetbrains . kotlin . com . intellij . psi . Psi WhiteSpace Ċ import Ġorg . jetbrains . kotlin . descriptors . Declaration Descriptor Ċ import Ġorg . jetbrains . kotlin . lexer . Kt Tokens Ċ import Ġorg . jetbrains . kotlin . psi . Kt Binary Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Prefix Expression Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . get Top most Parent OfType Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . leaves Ċ import Ġorg . jetbrains . kotlin . resolve . Binding Context Ċ import Ġorg . jetbrains . kotlin . resolve . binding Context Util . is Used As Expression Ċ import Ġorg . jetbrains . kotlin . resolve . calls . call Util . get Resolved Call Ċ Ċ /** Ċ Ġ* ĠThis Ġrule Ġdetect s Ġunused Ġunary Ġoperators . Ċ Ġ* Ċ Ġ* Ġ< non comp liant > Ċ Ġ* Ġval Ġx Ġ= Ġ 1 Ġ+ Ġ 2 Ċ Ġ* ĠĠĠĠ Ġ+ Ġ 3 Ġ+ Ġ 4 Ċ Ġ* Ġprintln ( x ) Ġ// Ġ 3 Ċ Ġ* Ġ</ non comp liant > Ċ Ġ* Ċ Ġ* Ġ< comp liant > Ċ Ġ* Ġval Ġx Ġ= Ġ 1 Ġ+ Ġ 2 Ġ+ Ġ 3 Ġ+ Ġ 4 Ċ Ġ* Ġprintln ( x ) Ġ// Ġ 1 0 Ċ Ġ* Ġ</ comp liant > Ċ Ġ* Ċ Ġ*/ Ċ @ Requires Type Resolution Ċ class ĠUn used Unary Operator ( config : ĠConfig Ġ= ĠConfig . empty ) Ġ: ĠRule ( config ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġissue Ġ= ĠIssue ( ĊĠĠĠĠĠĠĠ Ġjava Class . simple Name , ĊĠĠĠĠĠĠĠ ĠSeverity . Defect , ĊĠĠĠĠĠĠĠ Ġ" This Ġunary Ġoperator Ġis Ġunused .", ĊĠĠĠĠĠĠĠ ĠDeb t . FI VE _ MIN S ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Suppress (" Return Count ") ĊĠĠĠ Ġoverride Ġfun Ġvisit Prefix Expression ( expression : ĠK t Prefix Expression ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . visit Prefix Expression ( expression ) ĊĠĠĠĠĠĠĠ Ġif Ġ( binding Context Ġ== ĠBinding Context . EMPTY ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ( expression . base Expression Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġoperation Token Ġ= Ġexpression . operation Token ĊĠĠĠĠĠĠĠ Ġif Ġ( operation Token Ġ!= ĠK t Tokens . PLUS Ġ&& Ġoperation Token Ġ!= ĠK t Tokens . MINUS ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ( expression . node . leaves ( forward Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take While Ġ{ Ġit Ġis ĠPsi WhiteSpace Ġ|| Ġit Ġis ĠPsi Comment Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. none Ġ{ Ġit Ġis ĠPsi WhiteSpace Ġ&& Ġit . text Contains ('\ n ') Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġparent Or Self Ġ= Ġ( expression . get Top most Parent OfType < Kt Binary Expression >() Ġ?: Ġexpression ) Ġas ĠK t Expression ĊĠĠĠĠĠĠĠ Ġif Ġ( parent Or Self . is Used As Expression ( binding Context )) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġoperator Descriptor Ġ= Ġexpression . operation Reference . get Resolved Call ( binding Context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . result ing Descriptor Ġas ? ĠDeclaration Descriptor Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ(! Kotlin Built Ins . is Under Kotlin Package ( operator Descriptor )) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" This Ġ'${ parent Or Self . text }' Ġis Ġnot Ġused " ĊĠĠĠĠĠĠĠ Ġreport ( Code S mell ( issue , ĠEntity . from ( expression ), Ġmessage )) ĊĠĠĠ Ġ} Ċ } Ċ