# New Ticket Created by mt1957 # Please include the string: [perl #128854] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=128854 >
Hi, Got the following error Type 'M0::C1' is not declared at /home/marcel/Languages/Perl6/Tests/Class/moc1.pl6:8 ------> has M0::C1⏏ $!c1; Malformed has at /home/marcel/Languages/Perl6/Tests/Class/moc1.pl6:8 ------> has M0::⏏C1 $!c1; from the following code; The program m0c1.pl6 #!/usr/bin/env perl6 use v6.c; use M0::C1; class xyz { # same for package and module class M0 { has M0::C1 $!c1; } } my $c1 = xyz::M0.new; and the file M0/C1.pm6 use v6.c; class M0::C1 {} Error disappears when outer class(xyz) is removed and 'my $c1 = xyz::M0.new;' is changed into 'my $c1 = M0.new;' As an alternative the error also disappears when renaming the inner class into Mx0 and change 'my $c1 = xyz::M0.new;' into 'my $c1 = xyz::Mx0.new;'. And this one helps too and is maybe the recommended way to do; rewrite 'has M0::C1 $!c1;' into 'has ::M0::C1 $!c1;'. So 1) the message is not helpful and 2) it doesn't show a consequent behavior if I look at the last two workarounds. Greetings, Marcel