Buggy code:
public class CeylonOutlineNode implements IAdaptable { public static final int ROOT_CATEGORY = - 4 ; public static final int PACKAGE_CATEGORY = - 3 ; public static final int UNIT_CATEGORY = - 2 ; public static final int IMPORT_LIST_CATEGORY = - 1 ; public static final int DEFAULT_CATEGORY = 0 ; private final List < CeylonOutlineNode > children = new ArrayList < CeylonOutlineNode > ( ) ; private CeylonOutlineNode parent ; private final int category ; private final String id ; private IResource resource ; private boolean declaration ; private boolean shared ; private int startOffset ; private int endOffset ; private String imageKey ; private StyledString label ; private int decorations ; private String name ; private int realStartOffset ; private int realEndOffset ; CeylonOutlineNode ( Node treeNode ) { } CeylonOutlineNode ( Node treeNode , int category ) { } CeylonOutlineNode ( Node treeNode , CeylonOutlineNode parent ) { } CeylonOutlineNode ( Node treeNode , CeylonOutlineNode parent , int category ) { } CeylonOutlineNode ( Node treeNode , int category , IResource resource ) { } CeylonOutlineNode ( Node treeNode , CeylonOutlineNode parent , int category , IResource resource ) { } void addChild ( CeylonOutlineNode child ) { } public List < CeylonOutlineNode > getChildren ( ) { } public CeylonOutlineNode getParent ( ) { } public boolean isShared ( ) { } public String getName ( ) { } public int getCategory ( ) { } public boolean isDeclaration ( ) { } public int getStartOffset ( ) { } public int getEndOffset ( ) { } public int getRealStartOffset ( ) { } public int getRealEndOffset ( ) { } public String getImageKey ( ) { } public StyledString getLabel ( ) { } public int getDecorations ( ) { } @ Override public boolean equals ( Object obj ) { } @ Override public int hashCode ( ) { } public String getIdentifier ( ) { } public String createIdentifier ( Node treeNode ) { try { switch ( category ) { case CeylonOutlineNode . ROOT_CATEGORY : String path ; Unit unit = treeNode . getUnit ( ) ; if ( unit instanceof SourceFile ) { path = ( ( SourceFile ) ( unit ) ) . getRelativePath ( ) ; } else { path = unit . getFilename ( ) ; } return "@root:" + path ; case CeylonOutlineNode . PACKAGE_CATEGORY : return "@package:" + ( ( ( PackageNode ) ( treeNode ) ) . getPackageName ( ) ) ; case CeylonOutlineNode . UNIT_CATEGORY : return "@unit:" + ( treeNode . getUnit ( ) . getFilename ( ) ) ; case CeylonOutlineNode . IMPORT_LIST_CATEGORY : <START_BUG> return "@importlist" + ( treeNode . getUnit ( ) . getFilename ( ) ) ; <END_BUG> case CeylonOutlineNode . DEFAULT_CATEGORY : default : if ( treeNode instanceof Tree . Import ) { return "@import:" + ( CeylonOutlineNode . pathToName ( ( ( Tree . Import ) ( treeNode ) ) . getImportPath ( ) , treeNode ) ) ; } else if ( treeNode instanceof Tree . Declaration ) { Tree . Identifier id = ( ( Tree . Declaration ) ( treeNode ) ) . getIdentifier ( ) ; String name = ( id == null ) ? String . valueOf ( System . identityHashCode ( treeNode ) ) : id . getText ( ) ; if ( ( ( parent ) != null ) && ( parent . isDeclaration ( ) ) ) { return ( ( getParent ( ) . getIdentifier ( ) ) + ":" ) + name ; } else { return "@declaration:" + name ; } } else if ( treeNode instanceof Tree . ImportModule ) { return "@importmodule:" + ( CeylonOutlineNode . pathToName ( ( ( Tree . ImportModule ) ( treeNode ) ) . getImportPath ( ) , treeNode ) ) ; } else if ( treeNode instanceof Tree . ModuleDescriptor ) { return "@moduledescriptor:" + ( CeylonOutlineNode . pathToName ( ( ( Tree . ModuleDescriptor ) ( treeNode ) ) . getImportPath ( ) , treeNode ) ) ; } else if ( treeNode instanceof Tree . PackageDescriptor ) { return "@packagedescriptor:" + ( CeylonOutlineNode . pathToName ( ( ( Tree . PackageDescriptor ) ( treeNode ) ) . getImportPath ( ) , treeNode ) ) ; } else if ( treeNode instanceof Tree . SpecifierStatement ) { Tree . Term bme = ( ( Tree . SpecifierStatement ) ( treeNode ) ) . getBaseMemberExpression ( ) ; Tree . Identifier id ; if ( bme instanceof Tree . BaseMemberExpression ) { id = ( ( Tree . BaseMemberExpression ) ( bme ) ) . getIdentifier ( ) ; } else if ( bme instanceof Tree . ParameterizedExpression ) { id = ( ( Tree . BaseMemberExpression ) ( ( ( Tree . ParameterizedExpression ) ( bme ) ) . getPrimary ( ) ) ) . getIdentifier ( ) ; } else { throw new RuntimeException ( "unexpected<seq2seq4repair_space>node<seq2seq4repair_space>type" ) ; } String name = ( id == null ) ? String . valueOf ( System . identityHashCode ( treeNode ) ) : id . getText ( ) ; if ( ( ( parent ) != null ) && ( parent . isDeclaration ( ) ) ) { return ( ( getParent ( ) . getIdentifier ( ) ) + ":" ) + name ; } else { return "@declaration:" + name ; } } else { throw new RuntimeException ( "unexpected<seq2seq4repair_space>node<seq2seq4repair_space>type" ) ; } } } catch ( RuntimeException re ) { re . printStackTrace ( ) ; return "" ; } } private static String pathToName ( Tree . ImportPath importPath , Node treeNode ) { } @ Override public String toString ( ) { } @ Override public Object getAdapter ( @ SuppressWarnings ( "rawtypes" ) Class adapter ) { } }

Fix:
return "@importlist:" + ( treeNode . getUnit ( ) . getFilename ( ) ) ;