diff options
-rw-r--r-- | weaver/src/org/aspectj/weaver/patterns/DeclareParents.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/DeclareParents.java b/weaver/src/org/aspectj/weaver/patterns/DeclareParents.java index efc8bf69b..7a66631b0 100644 --- a/weaver/src/org/aspectj/weaver/patterns/DeclareParents.java +++ b/weaver/src/org/aspectj/weaver/patterns/DeclareParents.java @@ -113,12 +113,18 @@ public class DeclareParents extends Declare { if (typePattern == TypePattern.NO) return null; // already had an error here TypeX iType = typePattern.getExactType(); ResolvedTypeX parentType = iType.resolve(world); + + if (targetType.equals(world.resolve(TypeX.OBJECT))) { + world.showMessage(IMessage.ERROR, "can't change the parents of java.lang.Object", + this.getSourceLocation(), null); + return null; + } if (parentType.isAssignableFrom(targetType)) return null; // already a parent if (targetType.isAssignableFrom(parentType)) { world.showMessage(IMessage.ERROR, - "type can not extend itself", this.getSourceLocation(), null + "type \'" + targetType.getName() + "\'can not extend itself", this.getSourceLocation(), null ); return null; } |