given name. It is effectively the method that C<SUPER::$method_name>
would dispatch to.
+=item B<< $metaclass->add_method($method_name, $method) >>
+
+This method takes a method name and a subroutine reference, and adds
+the method to the class.
+
+The subroutine reference can be a L<Class::MOP::Method>, and you are
+strongly encouraged to pass a meta method object instead of a code
+reference. If you do so, that object gets stored as part of the
+class's method map directly. If not, the meta information will have to
+be recreated later, and may be incorrect.
+
+If you provide a method object, this method will clone that object if
+the object's package name does not match the class name. This lets us
+track the original source of any methods added from other classes
+(notably Moose roles).
+
+=item B<< $metaclass->remove_method($method_name) >>
+
+Remove the named method from the class. This method returns the
+L<Class::MOP::Method> object for the method.
+
=back
=head2 Attribute introspection and creation
my %trustme = (
'Class::MOP::Attribute' => ['process_accessors'],
'Class::MOP::Class' => [
- qw( reset_package_cache_flag update_package_cache_flag
- add_meta_instance_dependencies remove_meta_instance_dependencies
- update_meta_instance_dependencies add_dependent_meta_instance
- remove_dependent_meta_instance invalidate_meta_instances
- invalidate_meta_instance
- construct_instance
- clone_instance
- compute_all_applicable_methods
- alias_method
- )
+ # deprecated
+ 'alias_method',
+ 'compute_all_applicable_methods',
+
+ # unfinished feature
+ 'add_dependent_meta_instance',
+ 'add_meta_instance_dependencies',
+ 'invalidate_meta_instance',
+ 'invalidate_meta_instances',
+ 'remove_dependent_meta_instance',
+ 'remove_meta_instance_dependencies',
+ 'update_meta_instance_dependencies',
+
+ # effectively internal
+ 'check_metaclass_compatibility',
+ 'clone_instance',
+ 'construct_class_instance',
+ 'construct_instance',
+ 'create_immutable_transformer',
+ 'create_meta_instance',
+ 'get_immutable_options',
+ 'reset_package_cache_flag',
+ 'update_package_cache_flag',
+ 'wrap_method_body',
+
+ # doc'd under get_all_attributes
+ 'compute_all_applicable_attributes',
+
],
);