diff --git a/t/class/field.t b/t/class/field.t index a12fb6541389..eb2cc4b70976 100644 --- a/t/class/field.t +++ b/t/class/field.t @@ -297,4 +297,15 @@ no warnings 'experimental::class'; 'Values for goto inside do {} blocks in field initialisers')); } +# field initialiser expressions permit a __CLASS__ +{ + class Test14 { + field $classname = __CLASS__; + + method classname { return $classname } + } + + is(Test14->new->classname, "Test14", '__CLASS__ in field initialisers'); +} + done_testing; diff --git a/t/class/inherit.t b/t/class/inherit.t index 38a05f371bed..923b9131db52 100644 --- a/t/class/inherit.t +++ b/t/class/inherit.t @@ -85,4 +85,15 @@ no warnings 'experimental::class'; ok($obj isa Test4A, 'Unit class syntax allows :isa'); } +{ + class Test5A { + field $classname = __CLASS__; + method classname { return $classname } + } + + class Test5B :isa(Test5A) { } + + is(Test5B->new->classname, "Test5B", '__CLASS__ yields correct class name for subclass'); +} + done_testing;