Mercurial > hg > truffle
changeset 21878:79fb8b5ef185
Truffle-DSL: compute UnsupportedSpecializationException message lazily; Add a @TruffleBoundary to its constructor as it may end up on the fast path.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 09 Jun 2015 12:50:43 +0200 |
parents | 23f0f181bc05 |
children | 90fd69243227 |
files | graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/UnsupportedSpecializationException.java |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/UnsupportedSpecializationException.java Tue Jun 09 12:50:43 2015 +0200 +++ b/graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/UnsupportedSpecializationException.java Tue Jun 09 12:50:43 2015 +0200 @@ -26,6 +26,7 @@ import java.util.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.nodes.*; /** @@ -40,8 +41,8 @@ private final Node[] suppliedNodes; private final Object[] suppliedValues; + @TruffleBoundary public UnsupportedSpecializationException(Node node, Node[] suppliedNodes, Object... suppliedValues) { - super("Unexpected values provided for " + node + ": " + Arrays.toString(suppliedValues)); Objects.requireNonNull(suppliedNodes, "The suppliedNodes parameter must not be null."); if (suppliedNodes.length != suppliedValues.length) { throw new IllegalArgumentException("The length of suppliedNodes must match the length of suppliedValues."); @@ -51,6 +52,11 @@ this.suppliedValues = suppliedValues; } + @Override + public String getMessage() { + return String.format("Unexpected values provided for %s: %s", node, Arrays.toString(suppliedValues)); + } + /** * Returns the {@link Node} that caused the this {@link UnsupportedSpecializationException}. */