protected List < JCDiagnostic > getWhereClauses ( ) { List < JCDiagnostic > clauses = List . nil ( ) ; for ( WhereClauseKind kind : WhereClauseKind . values ( ) ) { List < JCDiagnostic > lines = List . nil ( ) ; for ( Map . Entry < Type , JCDiagnostic > entry : whereClauses . get ( kind ) . entrySet ( ) ) { lines = lines . prepend ( entry . getValue ( ) ) ; } if ( ! lines . isEmpty ( ) ) { String key = kind . key ( ) ; if ( lines . size ( ) > 1 ) key += ".1" ; JCDiagnostic d = diags . fragment ( key , whereClauses . get ( kind ) . keySet ( ) ) ; d = new JCDiagnostic . MultilineDiagnostic ( d , lines . reverse ( ) ) ; clauses = clauses . prepend ( d ) ; } } return clauses . reverse ( ) ; }
Build a list of multiline diagnostics containing detailed info about type - variables captured types and intersection types