[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[aspectj-dev] source location for initialization
|
- From: Wes Isberg <wes@xxxxxxxxxxxxxx>
- Date: Wed, 12 Feb 2003 14:57:49 -0800
- Delivered-to: aspectj-dev@eclipse.org
What should the source location be for initialization
and staticinitialization?
Currently, it's reported as line 0. E.g., try
declare warning: initialization(Foo.new(..)) : "init";
AFAIR, the compiler gathers all initializers into one
block of code, run before any constructor.
Questions presented [and my position]:
Should the compiler instead report the first instance of an
initializer, or the first line of the target class
if there is no initializer? [yes]
class Foo {
// some comment
static int i = 2; // staticinitialization(Foo)
int i = 3; // initialization(Foo)
Foo() { ...}
...
}
class Bar {
// some comment // {static}initialization(Bar)
...
}
Should the answer be different for static initializers,
which (if not constant) are not run until a reference
thereto is evaluated at runtime? [no]
Should it ignore initializers declared in aspects? [no, but...]
Even if those are the only initializers declared for a class?
Is there any strong reason not to defer the answer and
any related fix until after 1.1? [no]
Wes
cf http://dev.eclipse.org/bugs/show_bug.cgi?id=31724