Currently only requirement for meta validation to pass is for object to implement MappedObject. But since we support inheritance, interfaces and traits, not only class implementing MappedObject may use object mapper meta.
We should check if meta is defined in:
[x] Class which implements MappedObject
[x] Trait used in a class which implements MappedObject
[x] Interface which extends MappedObject
e.g. following case is against LSP and should be disallowed. Class A does not implement MappedObject but can be mapped when B which extends it and implements MappedObject is used.
#[After("method")]
class A {}
class B extends A implements MappedObject {}
Currently only requirement for meta validation to pass is for object to implement MappedObject. But since we support inheritance, interfaces and traits, not only class implementing MappedObject may use object mapper meta.
We should check if meta is defined in:
e.g. following case is against LSP and should be disallowed. Class A does not implement MappedObject but can be mapped when B which extends it and implements MappedObject is used.