diff -r 08a858022ea6 -r 006808ae5f6e langtools/src/jdk.jshell/share/classes/jdk/jshell/Eval.java --- a/langtools/src/jdk.jshell/share/classes/jdk/jshell/Eval.java Mon Jan 09 16:20:48 2017 -0800 +++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/Eval.java Mon Jan 09 18:04:16 2017 -0800 @@ -49,6 +49,7 @@ import java.io.Writer; import java.util.LinkedHashSet; import java.util.Set; +import jdk.jshell.ExpressionToTypeInfo.ExpressionInfo; import jdk.jshell.Key.ErroneousKey; import jdk.jshell.Key.MethodKey; import jdk.jshell.Key.TypeDeclKey; @@ -58,7 +59,6 @@ import jdk.jshell.TaskFactory.BaseTask; import jdk.jshell.TaskFactory.CompileTask; import jdk.jshell.TaskFactory.ParseTask; -import jdk.jshell.TreeDissector.ExpressionInfo; import jdk.jshell.Wrap.Range; import jdk.jshell.Snippet.Status; import jdk.jshell.spi.ExecutionControl.ClassBytecodes; @@ -296,7 +296,7 @@ private List processExpression(String userSource, String compileSource) { String name = null; - ExpressionInfo ei = typeOfExpression(compileSource); + ExpressionInfo ei = ExpressionToTypeInfo.expressionInfo(compileSource, state); ExpressionTree assignVar; Wrap guts; Snippet snip; @@ -499,16 +499,6 @@ return singletonList(snip); } - private ExpressionInfo typeOfExpression(String expression) { - Wrap guts = Wrap.methodReturnWrap(expression); - TaskFactory.AnalyzeTask at = trialCompile(guts); - if (!at.hasErrors() && at.firstCuTree() != null) { - return TreeDissector.createByFirstClass(at) - .typeOfReturnStatement(at, state); - } - return null; - } - /** * Should a temp var wrap the expression. TODO make this user configurable. *