[ 'baz(); $dee = (new D())->fooFoo();', 'assertions' => [ '$cee' => 'string', '$dee' => 'string', ], ], 'isExtendedInterface' => [ ' [ ' [ 'fooFoo(); }', ], 'correctInterfaceMethodSignature' => [ ' [ ' [ ' [ ' [ 'foo(); } }', ], 'abstractInterfaceImplements' => [ ' [ 'foo(); } }', ], 'implementsPartialInterfaceMethods' => [ ' [], 'error_levels' => ['MissingReturnType'], ], 'interfaceConstants' => [ ' [ ' [ ' [ ' [ ' [ ' [ ' 'UndefinedClass', ], 'noInterfaceProperties' => [ 'bar) { } }', 'error_message' => 'NoInterfaceProperties', ], 'unimplementedInterfaceMethod' => [ ' 'UnimplementedInterfaceMethod', ], 'mismatchingInterfaceMethodSignature' => [ ' 'MethodSignatureMismatch', ], 'mismatchingInterfaceMethodSignatureInTrait' => [ ' 'MethodSignatureMismatch', ], 'mismatchingInterfaceMethodSignatureInImplementer' => [ ' 'MethodSignatureMismatch', ], 'mismatchingReturnTypes' => [ ' 'MethodSignatureMismatch', ], 'mismatchingDocblockReturnTypes' => [ ' 'ImplementedReturnTypeMismatch', ], 'abstractInterfaceImplementsButCallUndefinedMethod' => [ 'foo2(); } }', 'error_message' => 'UndefinedMethod', ], 'abstractInterfaceImplementsWithSubclass' => [ ' 'UnimplementedInterfaceMethod', ], 'lessSpecificReturnStatement' => [ ' 'LessSpecificReturnStatement', ], 'interfaceReturnType' => [ 'blah();', 'error_message' => 'MixedAssignment', 'error_levels' => [ 'MissingReturnType', ], ], 'interfaceInstanceofAndTwoReturns' => [ ' 'InvalidReturnStatement', ], ]; } }