// ĠCopyright Ġ 2 0 0 0 - 2 0 1 8 Ġ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 . Ċ @ file : Suppress (" DE PREC ATION ", Ġ" Scheduled For Removal ") Ċ Ċ package Ġorg . jetbrains . plugins . groovy . lang . typing Ċ Ċ import Ġcom . intellij . psi . Psi Type Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . api . statements . expressions . Gr Reference Expression Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . type Enh ancers . Gr Expression Type Calculator Ċ Ċ class ĠReference Expression Type Calculator Ġ: ĠGr Type Calculator < Gr Reference Expression > Ġ{ ĊĊĠ Ġoverride Ġfun ĠgetType ( expression : ĠGr Reference Expression ): ĠPsi Type ? Ġ{ ĊĠĠĠ Ġval Ġresolved Ġ= Ġexpression . resolve () ĊĠĠĠ Ġfor Ġ( calculator Ġin ĠGr Expression Type Calculator . EP _ NAME . extensions ) Ġ{ ĊĠĠĠĠĠ Ġval Ġtype Ġ= Ġcalculator . calculate Type ( expression , Ġresolved ) ĊĠĠĠĠĠ Ġif Ġ( type Ġ!= Ġnull ) Ġreturn Ġtype ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull ĊĠ Ġ} Ċ } Ċ