From dcb99de4494f1f2fbc9fe9212d82c153ebf2ec00 Mon Sep 17 00:00:00 2001 From: acolyer Date: Thu, 11 Aug 2005 10:37:26 +0000 Subject: [PATCH] check that only abstract aspects can have type parameters, and that a generic super-aspect is fully parameterized in an extends clause. --- .../internal/compiler/ast/AspectDeclaration.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java index ac88e4a07..1b0d3eaea 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java @@ -144,6 +144,12 @@ public class AspectDeclaration extends TypeDeclaration { } } } + + // check the aspect was not declared generic, only abstract aspects can have type params + if (typeParameters != null && typeParameters.length > 0) { + scope.problemReporter().signalError(sourceStart(), sourceEnd(), + "only abstract aspects can have type parameters"); + } } if (this.enclosingType != null) { @@ -185,6 +191,14 @@ public class AspectDeclaration extends TypeDeclaration { ignoreFurtherInvestigation = true; return; } + + // if super type is generic, check that we have fully parameterized it + if (superType.isRawType()) { + scope.problemReporter().signalError(sourceStart, sourceEnd, + "a generic super-aspect must be fully parameterized in an extends clause"); + ignoreFurtherInvestigation = true; + return; + } } } -- 2.39.5