diff --git a/src/DI/Config/DefinitionSchema.php b/src/DI/Config/DefinitionSchema.php index da3da2a8b..05fea6877 100644 --- a/src/DI/Config/DefinitionSchema.php +++ b/src/DI/Config/DefinitionSchema.php @@ -159,6 +159,9 @@ private function sniffType($key, array $def): string } elseif (isset($def['imported'])) { return Definitions\ImportedDefinition::class; + } elseif (!$def) { + throw new Nette\DI\InvalidConfigurationException("Service '$key': Empty definition."); + } else { return Definitions\ServiceDefinition::class; } diff --git a/tests/DI/Compiler.missingDefinition.phpt b/tests/DI/Compiler.missingDefinition.phpt index d98187b47..61e8915e1 100644 --- a/tests/DI/Compiler.missingDefinition.phpt +++ b/tests/DI/Compiler.missingDefinition.phpt @@ -14,7 +14,7 @@ Assert::throws(function () { services: - '); -}, Nette\InvalidStateException::class, 'Factory and type are missing in definition of service.'); +}, Nette\InvalidStateException::class, "Service '0': Empty definition."); Assert::throws(function () { @@ -22,4 +22,4 @@ Assert::throws(function () { services: foo: '); -}, Nette\InvalidStateException::class, "Service 'foo': Factory and type are missing in definition of service."); +}, Nette\InvalidStateException::class, "Service 'foo': Empty definition.");