# HG changeset patch # User vromero # Date 1394732211 0 # Node ID e7e0973e6d2e0e192770abd824fe4821ea6fafe3 # Parent 45a10f396552e27ec068eac2f67efdc8d85128d1 8034127: javac provide debug oriented toString() methods to InferenceContext and UndetVar Reviewed-by: jjg diff -r 45a10f396552 -r e7e0973e6d2e langtools/src/share/classes/com/sun/tools/javac/code/Type.java --- a/langtools/src/share/classes/com/sun/tools/javac/code/Type.java Tue Mar 11 17:52:45 2014 -0700 +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Type.java Thu Mar 13 17:36:51 2014 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1481,8 +1481,21 @@ } public String toString() { - if (inst != null) return inst.toString(); - else return qtype + "?"; + return (inst == null) ? qtype + "?" : inst.toString(); + } + + public String debugString() { + String result = "inference var = " + qtype + "\n"; + if (inst != null) { + result += "inst = " + inst + '\n'; + } + for (InferenceBound bound: InferenceBound.values()) { + List aboundList = bounds.get(bound); + if (aboundList.size() > 0) { + result += bound + " = " + aboundList + '\n'; + } + } + return result; } @Override @@ -1492,8 +1505,7 @@ @Override public Type baseType() { - if (inst != null) return inst.baseType(); - else return this; + return (inst == null) ? this : inst.baseType(); } /** get all bounds of a given kind */ diff -r 45a10f396552 -r e7e0973e6d2e langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java Tue Mar 11 17:52:45 2014 -0700 +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java Thu Mar 13 17:36:51 2014 +0000 @@ -2173,6 +2173,12 @@ //back-door to infer return Infer.this; } + + @Override + public String toString() { + return "Inference vars: " + inferencevars + '\n' + + "Undet vars: " + undetvars; + } } final InferenceContext emptyContext = new InferenceContext(List.nil());