diff --git a/src/AspectWeaver.php b/src/AspectWeaver.php index 8939039..9b3b112 100644 --- a/src/AspectWeaver.php +++ b/src/AspectWeaver.php @@ -399,7 +399,10 @@ class AspectWeaver if ($type instanceof ReflectionNamedType) { $name = $type->getName(); - // Don't add ? for nullable built-in types that already allow null + if (!$type->isBuiltin()) { + $name = '\\' . $name; + } + if ($type->allowsNull() && $name !== 'mixed' && $name !== 'null') { return '?' . $name; } diff --git a/tests/Classes/CallsImportedClass.php b/tests/Classes/CallsImportedClass.php new file mode 100644 index 0000000..81631a6 --- /dev/null +++ b/tests/Classes/CallsImportedClass.php @@ -0,0 +1,15 @@ + false, 'after' => false]; + $c->dependsOnOther($o, $sideEffect); + $this->assertTrue($sideEffect->before); + $this->assertTrue($sideEffect->after); + } +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index aed571a..cb424f9 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -9,6 +9,7 @@ use Tests\Aspects\TrackingAspect; use Tests\Aspects\ThrowingAspect; use Tests\Aspects\ModifyingAspect; use Tests\Aspects\ConfigurableAspect; +use Tests\Classes\CallsImportedClass; use Tests\Classes\WrappedClass; use Tests\Classes\ParameterTypesClass; use Tests\Classes\StackedAspectsClass; @@ -34,6 +35,7 @@ $loader = AspectBuilder::begin() ThrowingClass::class, ModifyingClass::class, ConfigurableClass::class, + CallsImportedClass::class, ]) ->build($weaver) ->register();