Mercurial > hg > truffle
changeset 18499:bd74da0a76f3
implemented toString() for classes that throw UnsupportedError for hashCode()
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 25 Nov 2014 13:03:08 +0100 |
parents | a65cbe5432dd |
children | 5c5afd2c6bb3 |
files | graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Assumptions.java graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CompilationResult.java graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/DataSection.java graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TargetDescription.java graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java |
diffstat | 5 files changed, 54 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Assumptions.java Mon Nov 24 23:29:13 2014 +0100 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Assumptions.java Tue Nov 25 13:03:08 2014 +0100 @@ -22,6 +22,8 @@ */ package com.oracle.graal.api.code; +import static com.oracle.graal.api.meta.MetaUtil.*; + import java.io.*; import java.lang.invoke.*; import java.util.*; @@ -280,6 +282,11 @@ } @Override + public String toString() { + return identityHashCodeString(this); + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true;
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CompilationResult.java Mon Nov 24 23:29:13 2014 +0100 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CompilationResult.java Tue Nov 25 13:03:08 2014 +0100 @@ -22,6 +22,7 @@ */ package com.oracle.graal.api.code; +import static com.oracle.graal.api.meta.MetaUtil.*; import static java.util.Collections.*; import java.io.*; @@ -59,6 +60,11 @@ } @Override + public String toString() { + return identityHashCodeString(this); + } + + @Override public abstract boolean equals(Object obj); } @@ -316,6 +322,11 @@ } @Override + public String toString() { + return identityHashCodeString(this); + } + + @Override public abstract boolean equals(Object obj); } @@ -528,6 +539,11 @@ } @Override + public String toString() { + return identityHashCodeString(this); + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true;
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/DataSection.java Mon Nov 24 23:29:13 2014 +0100 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/DataSection.java Tue Nov 25 13:03:08 2014 +0100 @@ -22,6 +22,8 @@ */ package com.oracle.graal.api.code; +import static com.oracle.graal.api.meta.MetaUtil.*; + import java.io.*; import java.nio.*; import java.util.*; @@ -139,6 +141,11 @@ } @Override + public String toString() { + return identityHashCodeString(this); + } + + @Override public boolean equals(Object obj) { assert ref != null; if (obj == this) { @@ -167,6 +174,11 @@ } @Override + public String toString() { + return identityHashCodeString(this); + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true;
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TargetDescription.java Mon Nov 24 23:29:13 2014 +0100 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TargetDescription.java Tue Nov 25 13:03:08 2014 +0100 @@ -22,6 +22,8 @@ */ package com.oracle.graal.api.code; +import static com.oracle.graal.api.meta.MetaUtil.*; + import com.oracle.graal.api.meta.*; /** @@ -109,6 +111,11 @@ return false; } + @Override + public String toString() { + return identityHashCodeString(this); + } + public int getSizeInBytes(PlatformKind kind) { return arch.getSizeInBytes(kind); }
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Mon Nov 24 23:29:13 2014 +0100 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Tue Nov 25 13:03:08 2014 +0100 @@ -326,4 +326,16 @@ } return indentation + lines.replace(newLine, newLine + indentation); } + + /** + * Gets a string representation of an object based soley on its class and its + * {@linkplain System#identityHashCode(Object) identity hash code}. This avoids and calls to + * virtual methods on the object such as {@link Object#hashCode()}. + */ + public static String identityHashCodeString(Object obj) { + if (obj == null) { + return "null"; + } + return obj.getClass().getName() + "@" + System.identityHashCode(obj); + } }