package Ġorg . elm . lang . core . resolve . reference Ċ Ċ import Ġorg . elm . lang . core . psi . Elm Named Element Ċ import Ġorg . elm . lang . core . psi . elements . Elm Ex posed Type Ċ import Ġorg . elm . lang . core . psi . elements . Elm Ex posed Union Constructor Ċ import Ġorg . elm . lang . core . psi . elements . Elm Type Declaration Ċ import Ġorg . elm . lang . core . psi . parent OfType Ċ Ċ /** Ċ Ġ* ĠReference Ġfrom Ġthe Ġname Ġof Ġa Ġunion Ġconstructor Ġin Ġan Ġexposing Ġlist Ġto Ġthe Ġdefinition Ċ Ġ* Ġof Ġthe Ġunion Ġconstructor , Ġwhich Ġmay Ġbe Ġin Ġthis Ġfile Ġor Ġa Ġdifferent Ġfile , Ġdepending Ċ Ġ* Ġon Ġwhere Ġthe Ġcontaining Ġunion Ġtype Ġis Ġdefined . Ċ Ġ*/ Ċ class ĠEx posed Union Constructor Reference ( ex posed Union Constructor : ĠEl m Ex posed Union Constructor ) ĊĠĠĠ Ġ: ĠEl m Reference Cached < Elm Ex posed Union Constructor >( ex posed Union Constructor ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġresolve Inner (): ĠEl m Named Element ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Variants (). find Ġ{ Ġit . name Ġ== Ġelement . reference Name Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Variants (): ĠArray < Elm Named Element > Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġ[ kl ] Ġmaybe ĠI Ġshould Ġmove Ġthis Ġcode Ġinto Ġa Ġnew ĠUnion Type Scope Ġclass Ġfor Ġconsistency ? ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġelement . parent OfType < Elm Ex posed Type >() Ġ?: Ġerror (" bad Ġcontext ") ĊĠĠĠĠĠĠĠ Ġval Ġunion Type Ġ= Ġparent . reference . resolve () Ġ?: Ġreturn Ġempty Array () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( union Type Ġis ĠEl m Type Declaration ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġunion Type . union Variant List . to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" resolved Ġto Ġunexpected Ġelement ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ