// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 Ġ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 . plugins . gradle . service . resolve Ċ Ċ import Ġcom . intellij . psi . Psi ClassType Ċ import Ġcom . intellij . psi . Psi Wildcard Type Ċ import Ġgro ovy . lang . Closure Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . api . Gr Functional Expression Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . api . Gro ovy MethodResult Ċ import Ġorg . jetbrains . plugins . groovy . lang . resolve . api . Expression Argument Ċ import Ġorg . jetbrains . plugins . groovy . lang . resolve . deleg ates To . Deleg ates To Info Ċ import Ġorg . jetbrains . plugins . groovy . lang . resolve . deleg ates To . Gr Deleg ates To Provider Ċ import Ġorg . jetbrains . plugins . groovy . lang . resolve . deleg ates To . get Containing Call ĊĊ Ċ class ĠGradle Action Deleg ates To Provider Ġ: ĠGr Deleg ates To Provider Ġ{ ĊĠ Ġoverride Ġfun Ġget Deleg ates To Info ( expression : ĠGr Functional Expression ): ĠDeleg ates To Info ? Ġ{ ĊĠĠĠ Ġval Ġcall Ġ= Ġget Containing Call ( expression ) Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġresult Ġ= Ġcall . advanced Resolve () Ġas ? ĠGro ovy MethodResult Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġargument Mapping Ġ= Ġresult . candidate ?. argument Mapping Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġtype Ġ= Ġargument Mapping . expected Type ( Expression Argument ( expression )) Ġas ? ĠPsi ClassType Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġclazz Ġ= Ġtype . resolve () Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( clazz . qualified Name Ġ!= Ġ" org . gradle . api . Action ") Ġ{ ĊĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġsubstit uted Type Ġ= Ġresult . subst it utor . substitute ( type ) Ġas ? ĠPsi ClassType Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġtype Argument Ġ= Ġsubstit uted Type . parameters . single OrNull () Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġdelegate Type Ġ= Ġif Ġ( type Argument Ġis ĠPsi Wildcard Type Ġ&& Ġtype Argument . is Super ) Ġ{ ĊĠĠĠĠĠ Ġtype Argument . bound ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠ Ġtype Argument ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠDeleg ates To Info ( delegate Type , ĠClosure . DE LEG ATE _ FIRST ) ĊĠ Ġ} Ċ }