--------------------------------------------------------------------- TODO --------------------------------------------------------------------- - check out what chromatic said: I think you can check the class key <_ISA to see if it has expired. - switch to Context::Handle for method modifiers Should probably write some more tests to verify this works correctly when we add it in, to make sure we don't break weird stuff. - add ::Attribute::Collection types mugwump was working on this ... - do not bless methods unless asked We should turn off automagic method blessing for classes which are not explictly asking for a metaclass. --------------------------------------------------------------------- EXAMPLES TO WRITE --------------------------------------------------------------------- - Prototype-style example Make a C::MOP::Class subclass which has an AUTOLOAD method, the method will DWIM depending up on the value it is passed. Foo->prototype->say_hello(sub { print "Hello" }); This will turn into this: Foo->prototype->add_method('say_hello' => sub { print "Hello" }); I am not sure how we should handle non-method arguments, mostly because those would be static prototype variables, which would translate to class package variables.