Add identity hash codes to some substitution trace messages

Otherwise you can't tell how it works since replacements and
memoization are done by identity.
This commit is contained in:
Havoc Pennington 2014-07-04 22:35:29 -04:00
parent 9e8532d3f0
commit 7994e02c71
3 changed files with 10 additions and 4 deletions

View File

@ -39,6 +39,6 @@ final class MemoKey {
@Override
public final String toString() {
return "MemoKey(" + value + "," + restrictToChildOrNull + ")";
return "MemoKey(" + value + "@" + System.identityHashCode(value) + "," + restrictToChildOrNull + ")";
}
}

View File

@ -127,7 +127,8 @@ final class ResolveContext {
return cached;
} else {
if (ConfigImpl.traceSubstitutionsEnabled())
ConfigImpl.trace(depth(), "not found in cache, resolving " + original);
ConfigImpl.trace(depth(),
"not found in cache, resolving " + original + "@" + System.identityHashCode(original));
AbstractConfigValue resolved = source.resolveCheckingReplacement(this, original);

View File

@ -85,6 +85,8 @@ final class ResolveSource {
}
void replace(AbstractConfigValue value, ResolveReplacer replacer) {
if (ConfigImpl.traceSubstitutionsEnabled())
ConfigImpl.trace("Replacing " + value + "@" + System.identityHashCode(value) + " with " + replacer);
ResolveReplacer old = replacements.put(value, replacer);
if (old != null)
throw new ConfigException.BugOrBroken("should not have replaced the same value twice: "
@ -95,6 +97,9 @@ final class ResolveSource {
ResolveReplacer replacer = replacements.remove(value);
if (replacer == null)
throw new ConfigException.BugOrBroken("unreplace() without replace(): " + value);
if (ConfigImpl.traceSubstitutionsEnabled())
ConfigImpl.trace("Unreplacing " + value + "@" + System.identityHashCode(value) + " which was replaced by "
+ replacer);
}
private AbstractConfigValue replacement(ResolveContext context, AbstractConfigValue value)
@ -131,8 +136,8 @@ final class ResolveSource {
AbstractConfigValue resolved;
if (ConfigImpl.traceSubstitutionsEnabled())
ConfigImpl.trace(context.depth(), "resolving " + original + " with trace '" + context.traceString()
+ "'");
ConfigImpl.trace(context.depth(),
"resolving unreplaced " + original + " with trace '" + context.traceString() + "'");
resolved = original.resolveSubstitutions(context);
return resolved;