[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] if (false) pointcut and the empty set

> What about providing syntactic sugar and making empty() ...

Of course, users can do this now, which will help them migrate in
the future:

----

public class LibraryPointcuts {
    pointcut never();
    // and for later?
    // pointcut never() : if(false);
    private LibraryPointcuts() {}
}

----

btw, I prefer "never" to "empty" or "none" b/c thinking in terms
of "sets" of join points matched can be misleading.  Ron I believe
first publicly proposed "never" in

  http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg00506.html

Wes

Ron Bodkin wrote:
What about providing syntactic sugar and making empty() be the name for the empty pointcut?

Separately, I think the if(false) request is an optimization. There's a good analogy in Java itself; writing if(false) statement; is almost equivalent to writing nothing too. However, it too imposes some additional constraints on the code that will be optimized away, e.g.,
if(false) throw new UndeclaredCheckedException("this will be a compiler error");

Ron Bodkin
Chief Technology Officer
New Aspects of Security
m: (415) 509-2895


------------Original Message-------------
From: Jim Hugunin <lists@xxxxxxxxxxx>
To: aspectj-dev@xxxxxxxxxxx
Date: Fri, Sep-5-2003 8:55 AM
Subject: Re: [aspectj-dev] if (false) pointcut and the empty set

AspectJ has a mechanism for specifying that a pointcut matches nothing. You specify no body at all, i.e.
pointcut pc();


There have been complaints that this is confusing to people because it looks too much like an abstract pointcut declaration. For 1.2, we will consider providing a guarantee that if(false) will always be optimized away as matching nothing; however, I'm always concerned about having two roughly equivalent ways of saying the same thing in a programming language.

-Jim


Dean Wampler wrote:

I don't understand the internals of ajc, but the error messages also indicate to me that "if (false)" still results in some sort of evaluation at all join points and hence it still imposes a lot of overhead during the build. True? If so, a way to really turn it off "completely" would be nice (or some sort of alternative mechanism ....)

dean

Macneil Shonle wrote:


Hi all,

This is a minor feature request, but something I'd like to see. Sometimes
I want to disable a pointcut in my development (essentially commenting it
out). I used to do this by making the pointcut be "if (false)" but this
creates errors for after advice when expection handlers are present:

<...>
Thanks,
Macneil



_______________________________________________ aspectj-dev mailing list aspectj-dev@xxxxxxxxxxx http://dev.eclipse.org/mailman/listinfo/aspectj-dev


_______________________________________________ aspectj-dev mailing list aspectj-dev@xxxxxxxxxxx http://dev.eclipse.org/mailman/listinfo/aspectj-dev