id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	lang	patch	platform
1426	C3 linearizer fails on two plain (P6object) classes	Austin_Hastings		"This test code:
{{{
class Foo::Parent {
	method x() {
		say(""x"");
	}
}

class Foo::Child {
	method y() {
		say(""y"");
	}
}

P6metaclass.add_parent(Foo::Child, Foo::Parent);
}}}

fails when fed to `parrot-nqp`:
{{{
Could not build C3 linearization: ambiguous hierarchy
current instr.: 'parrot;P6metaclass;add_parent' pc 224 (runtime/parrot/library/P6object.pir:232)
called from Sub '_block11' pc 0 (EVAL_1:6)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc -1 ((unknown file):-1)
called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1303 (src/PCT/HLLCompiler.pir:707)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1489 (src/PCT/HLLCompiler.pir:794)
called from Sub 'parrot;NQP;Compiler;main' pc -1 ((unknown file):-1)
}}}

Since the P6object system automatically adds a P6object root class as a parent to created classes, the two classes being merged look like:

P6 -> Child
P6 -> Parent

It seems like C3 should be able to work that out.
"	bug	closed	normal		none	2.0.0	high	wontfix					
