diff options
author | acolyer <acolyer> | 2005-08-19 14:49:23 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-08-19 14:49:23 +0000 |
commit | 2fbf2933e6b75fcac32e4b725227aa4ee70d2e79 (patch) | |
tree | 8b29100d32eddd658a043a5c6d55ced640028f90 | |
parent | 2b23e912c5e57b0731b25c3a26ec365b20468b0f (diff) | |
download | aspectj-2fbf2933e6b75fcac32e4b725227aa4ee70d2e79.tar.gz aspectj-2fbf2933e6b75fcac32e4b725227aa4ee70d2e79.zip |
make sure that fields don't have a void type in a get / set pointcut expression
-rw-r--r-- | weaver/src/org/aspectj/weaver/WeaverMessages.java | 1 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java | 9 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/weaver-messages.properties | 1 |
3 files changed, 10 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/WeaverMessages.java b/weaver/src/org/aspectj/weaver/WeaverMessages.java index 7efec1867..0665e2940 100644 --- a/weaver/src/org/aspectj/weaver/WeaverMessages.java +++ b/weaver/src/org/aspectj/weaver/WeaverMessages.java @@ -30,6 +30,7 @@ public class WeaverMessages { public static final String EXACT_TYPE_PATTERN_REQD = "exactTypePatternRequired"; public static final String CANT_BIND_TYPE = "cantBindType"; public static final String WILDCARD_NOT_ALLOWED = "wildcardTypePatternNotAllowed"; + public static final String FIELDS_CANT_HAVE_VOID_TYPE = "fieldCantBeVoid"; public static final String DECP_OBJECT = "decpObject"; public static final String CANT_EXTEND_SELF="cantExtendSelf"; diff --git a/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java b/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java index c2d6658e4..eba4ee37a 100644 --- a/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java +++ b/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java @@ -322,7 +322,14 @@ public class KindedPointcut extends Pointcut { if (visitor.wellHasItThen/*?*/()) { scope.message(MessageUtil.error(WeaverMessages.format(WeaverMessages.GET_AND_SET_DONT_SUPPORT_DEC_TYPE_PARAMETERS), getSourceLocation())); - } + } + + // fields can't have a void type! + UnresolvedType returnType = signature.getReturnType().getExactType(); + if (returnType == ResolvedType.VOID) { + scope.message(MessageUtil.error(WeaverMessages.format(WeaverMessages.FIELDS_CANT_HAVE_VOID_TYPE), + getSourceLocation())); + } } // no join points for initialization and preinitialization of parameterized types diff --git a/weaver/src/org/aspectj/weaver/weaver-messages.properties b/weaver/src/org/aspectj/weaver/weaver-messages.properties index e962215af..e1c2cad55 100644 --- a/weaver/src/org/aspectj/weaver/weaver-messages.properties +++ b/weaver/src/org/aspectj/weaver/weaver-messages.properties @@ -25,6 +25,7 @@ cantFindPointcut=can''t find pointcut ''{0}'' on {1} exactTypePatternRequired=exact type pattern required cantBindType=can''t bind type name ''{0}'' wildcardTypePatternNotAllowed=wildcard type pattern not allowed, must use type name +fieldCantBeVoid=fields cannot have a void type # Declare parents messages... decpObject=can''t change the parents of java.lang.Object |