package Ġcom . jetbrains . snake charm . ins pe ctions Ċ Ċ import Ġcom . intellij . code Inspection . Local Inspection Tool Session Ċ 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 . command . Write Command Action Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . jetbrains . python . psi . Py ArgumentList Ċ import Ġcom . jetbrains . python . psi . Py Keyword Argument Ċ import Ġcom . jetbrains . snake charm . Sn ak em ake Bundle Ċ import Ġcom . jetbrains . snake charm . lang . psi . S mk Args Section Ċ import Ġcom . jetbrains . snake charm . lang . psi . S mk Rule Or Checkpoint Args Section Ċ import Ġcom . jetbrains . snake charm . lang . psi . S mk Sub workflow Args Section Ċ Ċ class ĠS mk Section D uplicated Args Inspection Ġ: ĠSn ak em ake Inspection () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġbuild Visitor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder : ĠPro blems Holder , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis On The Fly : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession : ĠLocal Inspection Tool Session ĊĠĠĠ Ġ) Ġ= Ġobject Ġ: ĠSn ak em ake Inspection Visitor ( holder , Ġsession ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit S mk Sub workflow Args Section ( st : ĠS mk Sub workflow Args Section ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ArgumentList ( st . argument List , Ġst ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit S mk Rule Or Checkpoint Args Section ( st : ĠS mk Rule Or Checkpoint Args Section ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ArgumentList ( st . argument List , Ġst ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcheck ArgumentList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargument List : ĠPy ArgumentList ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection : ĠS mk Args Section ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġargument List ?. arguments Ġ?: Ġempty Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( args . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġset Of Declared Arguments Ġ= Ġmutable Set Of < String >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . forEach Ġ{ Ġarg Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠPy Keyword Argument Ġis Ġchecked Ġby ĠS mk SyntaxError Annot ator Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arg Ġ! is ĠPy Keyword Argument ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġarg . text ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text Ġin Ġset Of Declared Arguments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Problem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ak em ake Bundle . message (" IN SP . NAME . section . d uplicated . args . message ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection . section Keyword !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRemove Argument Quick Fix ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Of Declared Arguments . add ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġobject ĠRemove Argument Quick Fix Ġ: ĠLocal Quick Fix Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Family Name () Ġ= ĠSn ak em ake Bundle . message (" IN SP . INT N . remove . d uplicated . arg ") ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġapply Fix ( project : ĠProject , Ġdescriptor : ĠProblem Descriptor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWrite Command Action . run Write Command Action ( project ) Ġ{ Ġdescriptor . psi Element . delete () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget DisplayName (): ĠString Ġ= ĠSn ak em ake Bundle . message (" IN SP . NAME . section . d uplicated . args ") Ċ } Ċ