Buggy code:
} else { return make ( ) . Type ( syms ( ) . throwableType ) ; } } else if ( ( ( flags & ( ( ( ( AbstractTransformer . SATISFIES ) | ( AbstractTransformer . EXTENDS ) ) | ( AbstractTransformer . TYPE_ARGUMENT ) ) | ( AbstractTransformer . CLASS_NEW ) ) ) == 0 ) && ( ! ( isOptional ( type ) ) ) ) { if ( isCeylonString ( type ) ) { return make ( ) . Type ( syms ( ) . stringType ) ; } else if ( isCeylonBoolean ( type ) ) { return make ( ) . TypeIdent ( BOOLEAN ) ; } else if ( ( isCeylonNatural ( type ) ) || ( isCeylonInteger ( type ) ) ) { if ( ( flags & ( AbstractTransformer . SMALL_TYPE ) ) != 0 ) { return make ( ) . TypeIdent ( INT ) ; } else { return make ( ) . TypeIdent ( LONG ) ; } } else if ( isCeylonFloat ( type ) ) { if ( ( flags & ( AbstractTransformer . SMALL_TYPE ) ) != 0 ) { return make ( ) . TypeIdent ( FLOAT ) ; } else { return make ( ) . TypeIdent ( DOUBLE ) ; } } else if ( isCeylonCharacter ( type ) ) { return make ( ) . TypeIdent ( INT ) ; } } JCExpression jt ; type = simplifyType ( type ) ; TypeDeclaration tdecl = type . getDeclaration ( ) ; java . util . List < ProducedType > tal = type . getTypeArgumentList ( ) ; if ( ( ( ( flags & ( AbstractTransformer . WANT_RAW_TYPE ) ) == 0 ) && ( tal != null ) ) && ( ! ( tal . isEmpty ( ) ) ) ) { ListBuffer < JCExpression > typeArgs = new ListBuffer < JCExpression > ( ) ; int idx = 0 ; for ( ProducedType ta : tal ) { if ( isOptional ( ta ) ) { ta = typeFact ( ) . getDefiniteType ( ta ) ; } if ( ( typeFact ( ) . isUnion ( ta ) ) || ( typeFact ( ) . isIntersection ( ta ) ) ) { typeArgs = null ; break ; } JCExpression jta ; if ( sameType ( syms ( ) . ceylonVoidType , ta ) ) { if ( ( flags & ( ( AbstractTransformer . SATISFIES ) | ( AbstractTransformer . EXTENDS ) ) ) != 0 ) { jta = make ( ) . Type ( syms ( ) . objectType ) ; } else { TypeParameter tp = tdecl . getTypeParameters ( ) . get ( idx ) ; if ( tp . isContravariant ( ) ) { jta = make ( ) . Type ( syms ( ) . objectType ) ; } else if ( tp . isCovariant ( ) ) { jta = make ( ) . Wildcard ( make ( ) . TypeBoundKind ( UNBOUND ) , makeJavaType ( ta , flags ) ) ; } else { jta = make ( ) . Type ( syms ( ) . objectType ) ; } } } else if ( ( ta . getDeclaration ( ) ) instanceof BottomType ) { if ( ( flags & ( ( AbstractTransformer . SATISFIES ) | ( AbstractTransformer . EXTENDS ) ) ) != 0 ) { typeArgs = null ; break ; } else { TypeParameter tp = tdecl . getTypeParameters ( ) . get ( idx ) ; if ( tp . isContravariant ( ) ) { jta = make ( ) . Wildcard ( make ( ) . TypeBoundKind ( UNBOUND ) , makeJavaType ( ta ) ) ; } else { typeArgs = null ; break ; } } } else { if ( ( flags & ( ( AbstractTransformer . SATISFIES ) | ( AbstractTransformer . EXTENDS ) ) ) != 0 ) { <START_BUG> jta = makeJavaType ( ta , ( flags & ( ( AbstractTransformer . SATISFIES ) | ( AbstractTransformer . EXTENDS ) ) ) ) ; <END_BUG> } else { TypeParameter tp = tdecl . getTypeParameters ( ) . get ( idx ) ; if ( ( ( flags & ( AbstractTransformer . CLASS_NEW ) ) == 0 ) && ( tp . isContravariant ( ) ) ) { jta = make ( ) . Wildcard ( make ( ) . TypeBoundKind ( SUPER ) , makeJavaType ( ta , AbstractTransformer . TYPE_ARGUMENT ) ) ; } else if ( ( ( flags & ( AbstractTransformer . CLASS_NEW ) ) == 0 ) && ( tp . isCovariant ( ) ) ) { jta = make ( ) . Wildcard ( make ( ) . TypeBoundKind ( BoundKind . EXTENDS ) , makeJavaType ( ta , AbstractTransformer . TYPE_ARGUMENT ) ) ; } else { jta = makeJavaType ( ta , AbstractTransformer . TYPE_ARGUMENT ) ; } } } typeArgs . add ( jta ) ; idx ++ ; } if ( ( typeArgs != null ) && ( ( typeArgs . size ( ) ) > 0 ) ) { jt = make ( ) . TypeApply ( makeIdent ( getDeclarationName ( tdecl ) ) , typeArgs . toList ( ) ) ; } else { jt = makeIdent ( getDeclarationName ( tdecl ) ) ; } } else { if ( tdecl instanceof TypeParameter ) jt = makeIdent ( tdecl . getName ( ) ) ; else jt = makeIdent ( getDeclarationName ( tdecl ) ) ; } return jt ; } private String getDeclarationName ( Declaration decl ) { } List < JCAnnotation > makeAtOverride ( ) { } public static boolean disableModelAnnotations = false ; public boolean checkCompilerAnnotations ( Tree . Declaration decl ) { } public void resetCompilerAnnotations ( boolean value ) { }

Fix:
jta = makeJavaType ( ta , AbstractTransformer . TYPE_ARGUMENT ) ;