On Tue, 2002-03-12 at 18:55, Maxim Shafirov wrote:
> Jonas, would you please try to localize the problem. One caused by "Constant
> conditions and NPE's" and we need the method body.
I've been trying to narrow it down. It seems to be triggered by a
specific method in a specific class, and I've removed as much code from
the method as I can -- as a matter of fact, everything except a single
switch statement.
public boolean apply(final Interpretation inter, final boolean
maketrue)
throws ContradictionException, NotWFFException
{
switch (maketrue ? op : negop()) {
case AND:
return true;
}
}
It seems to have something to do with the argument to switch: If I
switch on "op" rather than "maketrue ? op : negop()", the bug isn't
triggered.
Here are the definitions of op and negop():
private final int op;
public /*accessor*/ int negop() {
switch (op) {
case AND: return NAND;
case OR: return NOR;
case IMP: return NIMP;
case REVIMP: return NREVIMP;
case NAND: return AND;
case NOR: return OR;
case NIMP: return IMP;
case NREVIMP: return REVIMP;
case EQ: return NEQ;
case NEQ: return EQ;
default: throw new ProgramError("Illegal operator: " + op);
}
}
_______________________________________________
Eap-list mailing list
[EMAIL PROTECTED]
http://www.intellij.com/mailman/listinfo/eap-list