package Ġcom . pe st php . pe st Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġcom . jetbrains . php . Php Index Ċ import Ġcom . jetbrains . php . lang . psi . Php File Ċ import Ġcom . jetbrains . php . lang . psi . elements . Function Ċ import Ġcom . jetbrains . php . lang . psi . elements . Parameter List Ċ import Ġcom . jetbrains . php . lang . psi . elements . Php Expression Ċ import Ġcom . jetbrains . php . lang . psi . elements . Php Namespace Ċ import Ġcom . jetbrains . php . lang . psi . elements . Statement Ċ import Ġcom . jetbrains . php . lang . psi . elements . StringLiteral Expression Ċ import Ġcom . jetbrains . php . lang . psi . elements . Variable Ċ import Ġcom . jetbrains . php . lang . psi . elements . impl . Function Reference Impl Ċ import Ġcom . jetbrains . php . lang . psi . elements . impl . Method Reference Impl Ċ import Ġcom . jetbrains . php . lang . psi . resolve . types . Php Type Ċ import Ġcom . pe st php . pe st . custom Expectations . generators . Method Ċ import Ġcom . pe st php . pe st . custom Expectations . generators . Parameter Ċ Ċ val Ġexpectation Type Ġ= ĠPhp Type (). apply Ġ{ ĊĠĠĠ Ġthis . add ("\\ P est \\ Expectation ") Ċ } Ċ Ċ fun ĠPhp Type . is Expectation ( project : ĠProject ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġfiltered Type Ġ= Ġthis . filter Mixed () ĊĊĠĠĠ Ġif Ġ( filtered Type . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġexpectation Type . is Convert ible From ( ĊĠĠĠĠĠĠĠ Ġfiltered Type , ĊĠĠĠĠĠĠĠ ĠPhp Index . getInstance ( project ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠPsi Element ?. is This Variable In Extend (): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ(( this Ġas ? ĠVariable )?. name Ġ!= Ġ" this ") Ġreturn Ġfalse ĊĊĠĠĠ Ġval Ġclosure Ġ= ĠPsi Tree Util . getParent OfType ( this , ĠFunction :: class . java ) ĊĊĠĠĠ Ġif Ġ( closure Ġ== Ġnull Ġ|| Ġ! closure . is Closure ) Ġreturn Ġfalse ĊĊĠĠĠ Ġval Ġparameter List Ġ= Ġclosure . parent ?. parent Ġas ? ĠParameter List Ġ?: Ġreturn Ġfalse ĊĊĠĠĠ Ġreturn Ġparameter List . parent . is P est Extend Reference () Ċ } Ċ Ċ fun ĠPsi Element . is P est Extend Reference (): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ! is ĠMethod Reference Impl ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( this . canonical Text Ġ!= Ġ" extend ") Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġexpect Reference Ġ= Ġthis . firstChild ĊĊĠĠĠ Ġif Ġ( expect Reference Ġ! is ĠFunction Reference Impl ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( expect Reference . canonical Text Ġ!= Ġ" expect ") Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ val ĠMethod Reference Impl . extend Name : ĠString ? ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġthis . getParameter ( 0 ) Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ! is ĠString Literal Expression ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġname . contents ĊĠĠĠ Ġ} Ċ Ċ val ĠPsi File . custom Expect s : ĠList < Method Reference Impl > ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ! is ĠPhp File ) Ġreturn Ġempty List () ĊĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġthis . firstChild ĊĊĠĠĠĠĠĠĠ Ġreturn Ġelement . children . filter Is Instance < Php Namespace >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit . statements Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getOrElse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġelement Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. children ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Statement >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit . firstChild Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Method Reference Impl >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . is P est Extend Reference () Ġ} ĊĠĠĠ Ġ} Ċ Ċ fun ĠMethod Reference Impl . to Method (): ĠMethod ? Ġ{ ĊĠĠĠ Ġval Ġextend Name Ġ= Ġthis . extend Name Ġ?: Ġreturn Ġnull ĊĊĠĠĠ Ġval Ġclosure Ġ= Ġ( this . parameters [ 1 ] Ġas ? ĠPhp Expression )?. firstChild Ġas ? ĠFunction ĊĊĠĠĠ Ġif Ġ( closure Ġ=== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠMethod ( ĊĠĠĠĠĠĠĠ Ġextend Name , ĊĠĠĠĠĠĠĠ Ġclosure . type , ĊĠĠĠĠĠĠĠ Ġclosure . parameters . map Ġ{ Ġparameter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠParameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter . defaultValue Presentation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ }