From f7db99d130f8eceef1e9d8c90105e287fca7ece9 Mon Sep 17 00:00:00 2001 From: Dylan McGannon Date: Fri, 31 Aug 2018 22:28:37 +1000 Subject: [PATCH] fix(indexing): Files with classes that declare itself to be it's parent can cause an infinite loop when indexing. #669 --- fixtures/self_referencing_class.php | 4 ++++ src/DefinitionResolver.php | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 fixtures/self_referencing_class.php diff --git a/fixtures/self_referencing_class.php b/fixtures/self_referencing_class.php new file mode 100644 index 0000000..287fc25 --- /dev/null +++ b/fixtures/self_referencing_class.php @@ -0,0 +1,4 @@ +undef_prop = 1; \ No newline at end of file diff --git a/src/DefinitionResolver.php b/src/DefinitionResolver.php index 990c196..163000f 100644 --- a/src/DefinitionResolver.php +++ b/src/DefinitionResolver.php @@ -452,7 +452,9 @@ class DefinitionResolver // Repeat for parent class if ($implementorDef->extends) { foreach ($implementorDef->extends as $extends) { - $implementorFqns[] = $extends; + if ($extends !== $implementorFqn) { + $implementorFqns[] = $extends; + } } } }