package Ġorg . crystal . intellij . psi Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġorg . crystal . intellij . parser . CR _ HASH _ TYPE Ċ import Ġorg . crystal . intellij . stubs . api . Cr Type Stub Ċ Ċ class ĠCr Hash Type Ġ: ĠCr Type Ġ{ ĊĠĠĠ Ġconstructor ( stub : ĠCr Type Stub ) Ġ: Ġsuper ( stub , ĠCR _ HASH _ TYPE ) ĊĊĠĠĠ Ġconstructor ( node : ĠAST Node ) Ġ: Ġsuper ( node ) ĊĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠCr Visitor ) Ġ= Ġvisitor . visit Hash Type ( this ) ĊĊĠĠĠ Ġval Ġleft Type : ĠCr Type ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgreen Stub ?. let Ġ{ Ġreturn Ġit . children Stub s . get OrNull ( 0 )?. psi Ġas ? ĠCr Type Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfirst Child Ġas ? ĠCr Type ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġright Type : ĠCr Type ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgreen Stub ?. let Ġ{ Ġreturn Ġit . children Stub s . get OrNull ( 1 )?. psi Ġas ? ĠCr Type Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġleft Type ?. next Sibling OfType () ĊĠĠĠĠĠĠĠ Ġ} Ċ }