package Ġorg . cq fn . di kt at . rule set . utils Ċ Ċ import Ġorg . cq fn . di kt at . rule set . utils . search . findAll Variable sWith Assignments Ċ import Ġorg . cq fn . di kt at . util . apply To Code Ċ Ċ import Ġcom . p interest . kt lint . core . ast . ElementType . FILE Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Disabled Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ @ Suppress (" Unsafe Call On Nullable Type ") Ċ class ĠVariable sWith Assignments Search Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` testing Ġproper Ġvariables Ġsearch Ġin Ġfunction `() Ġ{ ĊĠĠĠĠĠĠĠ Ġapply To Code (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfoo ( a : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfoo 1 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġo Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo Ġ= Ġ 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo Ġ= Ġ 1 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġ 0 ) Ġ{ Ġnode , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node . elementType Ġ== ĠFILE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvars Ġ= Ġnode . findAll Variable sWith Assignments (). map Keys Ġ{ Ġit . key . text Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= Ġvars . keys ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvar 1 Ġ= Ġkeys . elementAt ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" var Ġo Ġ= Ġ 1 ", Ġvar 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 , Ġvars [ var 1 ]?. size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` testing Ġproper Ġvariables Ġsearch Ġin Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġapply To Code (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġo Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfoo ( a : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfoo 1 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo Ġ= Ġ 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo Ġ= Ġ 1 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġ 0 ) Ġ{ Ġnode , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node . elementType Ġ== ĠFILE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvars Ġ= Ġnode . findAll Variable sWith Assignments (). map Keys Ġ{ Ġit . key . text Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= Ġvars . keys ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvar 1 Ġ= Ġkeys . elementAt ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" var Ġo Ġ= Ġ 1 ", Ġvar 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 2 , Ġvars [ var 1 ]?. size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Disabled ĊĠĠĠ Ġfun Ġ` testing Ġproper Ġvariables Ġsearch Ġwith Ġlambda `() Ġ{ ĊĠĠĠĠĠĠĠ Ġapply To Code (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfoo ( a : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġa Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġ 0 ) Ġ{ Ġnode , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node . elementType Ġ== ĠFILE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvars Ġ= Ġnode . findAll Variable sWith Assignments (). map Keys Ġ{ Ġit . key . text Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= Ġvars . keys ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvar 1 Ġ= Ġkeys . elementAt ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" var Ġa Ġ= Ġ 1 ", Ġvar 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 , Ġvars [ var 1 ]?. size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ