--- old/test/tools/javac/varargs/warning/Warn4.java 2014-06-16 22:43:28.000000000 -0700 +++ new/test/tools/javac/varargs/warning/Warn4.java 2014-06-16 22:43:28.000000000 -0700 @@ -73,13 +73,15 @@ ModifierKind modKind) { switch(this) { case VARARGS: - return source == SourceLevel.JDK_6 || + return source.compareTo(SourceLevel.JDK_7) < 0 || suppressLevelDecl == SuppressLevel.UNCHECKED || trustMe == TrustMe.TRUST; case UNCHECKED: return suppressLevelClient == SuppressLevel.UNCHECKED || - (trustMe == TrustMe.TRUST && modKind != - ModifierKind.NONE && source == SourceLevel.JDK_7); + (trustMe == TrustMe.TRUST && + (((modKind == ModifierKind.FINAL || modKind == ModifierKind.STATIC) && + source.compareTo( SourceLevel.JDK_7) >= 0 ) || + (modKind == ModifierKind.PRIVATE && source.compareTo( SourceLevel.JDK_9) >= 0 ))); } SuppressLevel supLev = this == VARARGS ? @@ -92,7 +94,8 @@ enum SourceLevel { JDK_6("6"), - JDK_7("7"); + JDK_7("7"), + JDK_9("9"); String sourceKey; @@ -115,7 +118,8 @@ enum ModifierKind { NONE(" "), FINAL("final "), - STATIC("static "); + STATIC("static "), + PRIVATE("private "); String mod;