Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Welcome to the "aspectj-users" mailing list

Hi there,
 I'd like to use AspectJ's JDT weaving in order to allow the classes of my Java like language to appear in the "Open type" dialog as well as using the JDT's call hierarchy view.
 As far as I have understood, it is sufficient to register a source transformer and the nature as weavable nature.

 The source transformer gets called and I return 

package com.example.androidsimple;class  BuildConfig
      extends java.lang.Object{

  

  public static boolean DEBUG;

  public BuildConfig()
  {


  }
}

which is valid Java code.


The code in my Java-like language looks like
public final class com.example.androidsimple.BuildConfig extends java.lang.Object
{

  public static boolean DEBUG;

  public void <init>()
  { 
    
      specialinvoke this.<java.lang.Object: void <init>()>();
      <com.example.androidsimple.BuildConfig: boolean DEBUG> = true;
  }
 
}  
The JDT compiler complains that
"specialinvoke cannot be resolved to a type" com.example.androidsimple.BuildConfig.jimple /tmp.apk/src/com/example/androidsimple line 11 Java Problem

So it seems that my source file in the Java-like language gets read instead of the code I return via my SourceTransformer, since specialinvoke is a keyword in my Java-like language and is nowhere in the transformed code.

Is this behaviour intented? I thought the Java compiler should get the source-transformed code instead?

Thank you very much in advance for any help,
 Marc

Back to the top