Community
Participate
Working Groups
The documentation for external annotations: https://wiki.eclipse.org/JDT_Core/Null_Analysis/External_Annotations Provides the example: interface java/util/Map <KV> get (Ljava/lang/Object;)TV; (Ljava/lang/Object;)T0V; Using this annotation throws a runtime exception: Exception:java.io.IOException: missing class header in annotation file for java/util/Map Full error log: http://pastebin.com/raw/dkP8jgQf The analysis will work if the word "interface" is instead written as "class"; but this conflicts with the documentation as well as the output of javap.
Thanks. The wiki page was inconsistent. Under "File layout" we have: -- typeHeader starts with the keyword class (subsuming also interfaces and enums) -- so clearly the example was wrong. The implementation ("Annotate" command) always uses "class" when creating a new .eea file. Fixed in the wiki. FWIW: apparently I had been considering to differentiate, but found no advantage. Then I remembered that all these are called class files, so "class" is already used as a generalization in other places. So, "class" is it.
Verified for 4.7 M7