[abc-dev] Compilation order should matter?

From: Fernando Calheiros <xfernando@gmail.com>
Date: Tue Aug 01 2006 - 20:40:11 BST

Hi everyone, I'm using ABC in a research project and the following
situation has come up... suppose that I have the following classes and
aspects (in their respective files).

package s40;

public class A {
   public static void main(String[] args) {
       switch(1) {
           case B.LITERAL:
               System.out.println("Works");
       }
   }
}

---------------------------------------------------------

package s40;

public class B {
}

---------------------------------------------------------
package s40;

public aspect C {
   declare parents : B implements IConstant;

   public interface IConstant {
       public static final int LITERAL = 1;
   }
}

This code should compile, but it doesn't (using "java abc.main.Main
-sourceroots s40"), instead it gives me the following error message:

A.java:6: Case label must be an integral constant.

But if class A was named D (in D.java), this code compiles just fine.

(It compiles with both ways in AspectJ)

Is it a compiler bug?

Thanks for your time,
Fernando Calheiros
Received on Tue Aug 01 20:40:16 2006

This archive was generated by hypermail 2.1.8 : Mon Aug 28 2006 - 10:20:08 BST