diff -r 1583c6dd6df7 -r 376a915b4ff0 langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Assert.java --- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Assert.java Mon Mar 02 10:41:08 2015 +0530 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Assert.java Thu Mar 05 13:10:49 2015 +0000 @@ -25,6 +25,8 @@ package com.sun.tools.javac.util; +import java.util.function.Supplier; + /** * Simple facility for unconditional assertions. * The methods in this class are described in terms of equivalent assert @@ -94,6 +96,15 @@ } /** Equivalent to + * assert cond : msg.get(); + * Note: message string is computed lazily. + */ + public static void check(boolean cond, Supplier msg) { + if (!cond) + error(msg.get()); + } + + /** Equivalent to * assert (o == null) : value; */ public static void checkNull(Object o, Object value) { @@ -110,6 +121,15 @@ } /** Equivalent to + * assert (o == null) : msg.get(); + * Note: message string is computed lazily. + */ + public static void checkNull(Object o, Supplier msg) { + if (o != null) + error(msg.get()); + } + + /** Equivalent to * assert (o != null) : msg; */ public static T checkNonNull(T t, String msg) { @@ -119,6 +139,16 @@ } /** Equivalent to + * assert (o != null) : msg.get(); + * Note: message string is computed lazily. + */ + public static T checkNonNull(T t, Supplier msg) { + if (t == null) + error(msg.get()); + return t; + } + + /** Equivalent to * assert false; */ public static void error() {