This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make MM_VMS::oneline build continuation lines properly.
[perl5.git] / t / mro / vulcan_dfs_utf8.t
1 #!./perl
2
3 use strict;
4 use warnings;
5 use utf8;
6 use open qw( :utf8 :std );
7 require q(./test.pl); plan(tests => 1);
8
9
10 =pod
11
12 =encoding UTF-8
13
14 example taken from: L<http://www.opendylan.org/books/drm/Method_Dispatch>
15
16          옵젳Ṯ
17            ^
18            |
19         ᓕᵮꡠFᚖᶭ 
20          ^    ^
21         /      \
22    SㄣチenŦ    빞엗ᱞ
23       ^          ^
24       |          |
25  ᕟ텔li겐ț  Hʉ만ӫ읻
26        ^        ^
27         \      /
28          ቩᓪ찬
29
30  define class <SㄣチenŦ> (<life-form>) end class;
31  define class <빞엗ᱞ> (<life-form>) end class;
32  define class <ᕟ텔li겐ț> (<SㄣチenŦ>) end class;
33  define class <Hʉ만ӫ읻> (<빞엗ᱞ>) end class;
34  define class <ቩᓪ찬> (<ᕟ텔li겐ț>, <Hʉ만ӫ읻>) end class;
35
36 =cut
37
38 {
39     package 옵젳Ṯ;
40     use mro 'dfs';
41     
42     package ᓕᵮꡠFᚖᶭ;
43     use mro 'dfs';
44     use base '옵젳Ṯ';
45     
46     package SㄣチenŦ;
47     use mro 'dfs';
48     use base 'ᓕᵮꡠFᚖᶭ';
49     
50     package 빞엗ᱞ;
51     use mro 'dfs';    
52     use base 'ᓕᵮꡠFᚖᶭ';
53     
54     package ᕟ텔li겐ț;
55     use mro 'dfs';    
56     use base 'SㄣチenŦ';
57     
58     package Hʉ만ӫ읻;
59     use mro 'dfs';    
60     use base '빞엗ᱞ';
61     
62     package ቩᓪ찬;
63     use mro 'dfs';    
64     use base ('ᕟ텔li겐ț', 'Hʉ만ӫ읻');
65 }
66
67 ok(eq_array(
68     mro::get_linear_isa('ቩᓪ찬'),
69     [ qw(ቩᓪ찬 ᕟ텔li겐ț SㄣチenŦ ᓕᵮꡠFᚖᶭ 옵젳Ṯ Hʉ만ӫ읻 빞엗ᱞ) ]
70 ), '... got the right MRO for the ቩᓪ찬 Dylan Example');