[ 'barBar(); } protected function barBar() : void { echo "hello"; } }', ], 'constSandwich' => [ ' [ ' [ '$a' => 'int', ], ], 'moreCyclicalReferences' => [ ' [ 'c(); } }', ], 'referenceToClassInMethod' => [ 'b(new A()); } }', ], 'overrideProtectedAccessLevelToPublic' => [ ' [ ' [ ' [ 'foo(); } }', ], 'missingParentWithFunction' => [ ' [], 'error_levels' => [ 'UndefinedClass', 'MissingReturnType', ], ], 'classTraversal' => [ 'bar; } } class C extends B { const DOPE = "dope"; }', ], 'subclassWithSimplerArg' => [ ' [ ' [ ' 'UndefinedClass', ], 'wrongCaseClass' => [ ' 'InvalidClass', ], 'invalidThisFetch' => [ ' 'InvalidScope', ], 'invalidThisArgument' => [ ' 'InvalidScope', ], 'undefinedConstant' => [ ' 'UndefinedConstant', ], 'undefinedClassConstant' => [ ' 'UndefinedConstant', ], // Skipped. A bug. 'SKIPPED-inheritanceLoopOne' => [ ' 'InvalidParent', ], // Skipped. A bug. 'SKIPPED-inheritanceLoopTwo' => [ ' 'InvalidParent', ], // Skipped. A bug. 'SKIPPED-inheritanceLoopThree' => [ ' 'InvalidParent', ], 'invalidDeferredReference' => [ ' 'UndefinedConstant', ], 'overridePublicAccessLevelToPublic' => [ ' 'OverriddenMethodAccess', ], 'overridePublicAccessLevelToProtected' => [ ' 'OverriddenMethodAccess', ], 'overrideProtectedAccessLevelToPrivate' => [ ' 'OverriddenMethodAccess', ], 'classRedefinition' => [ ' 'DuplicateClass', ], 'classRedefinitionInNamespace' => [ ' 'DuplicateClass', ], 'classRedefinitionInSeparateNamespace' => [ ' 'DuplicateClass', ], 'abstractClassInstantiation' => [ ' 'AbstractInstantiation', ], 'abstractClassMethod' => [ ' 'UnimplementedAbstractMethod', ], 'missingParent' => [ ' 'UndefinedClass', ], 'moreSpecificReturnType' => [ ' 'MoreSpecificReturnType', ], ]; } }