Removed spurious warnings due to STOB taking more speculative paths than it did previously.
Review by: spoon (desk check)
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2862 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
index 71310d4..93ac23a 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
@@ -912,10 +912,7 @@
if (typeParamsInQueryType.isEmpty()) {
if (!isParameterized.isAssignableFrom(subtype)) {
- // Only emit a warning if the supertype is not instantiable.
- Type logLevel = isInstantiable ? TreeLogger.DEBUG
- : getLogLevel(true);
- subtypeLogger.log(logLevel, "Excluding type '"
+ subtypeLogger.log(TreeLogger.DEBUG, "Excluding type '"
+ subtype.getParameterizedQualifiedSourceName()
+ "' because it is not assignable to '"
+ isParameterized.getParameterizedQualifiedSourceName()
@@ -1294,9 +1291,16 @@
return false;
}
+ /*
+ * Speculative paths log at DEBUG level, non-speculative ones log at WARN
+ * level.
+ */
+ TreeLogger.Type logLevel = isSpeculative ? TreeLogger.DEBUG
+ : TreeLogger.WARN;
+
if (type.isLocalType()) {
logger.branch(
- getLogLevel(isSpeculative),
+ logLevel,
type.getParameterizedQualifiedSourceName()
+ " is a local type; it will be excluded from the set of serializable types",
null);
@@ -1305,7 +1309,7 @@
if (type.isMemberType() && !type.isStatic()) {
logger.branch(
- getLogLevel(isSpeculative),
+ logLevel,
type.getParameterizedQualifiedSourceName()
+ " is nested but not static; it will be excluded from the set of serializable types",
null);
@@ -1320,7 +1324,7 @@
if (!type.isDefaultInstantiable()) {
// Warn and return false.
logger.log(
- TreeLogger.WARN,
+ logLevel,
"Was not default instantiable (it must have a zero-argument constructor or no constructors at all)",
null);
return false;