1.1 --- a/src/share/classes/com/sun/tools/javac/api/JavacTrees.java Tue Feb 28 10:25:53 2012 -0800 1.2 +++ b/src/share/classes/com/sun/tools/javac/api/JavacTrees.java Tue Feb 28 10:33:49 2012 -0800 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -26,7 +26,7 @@ 1.11 package com.sun.tools.javac.api; 1.12 1.13 import java.io.IOException; 1.14 -import java.util.Map; 1.15 + 1.16 import javax.annotation.processing.ProcessingEnvironment; 1.17 import javax.lang.model.element.AnnotationMirror; 1.18 import javax.lang.model.element.AnnotationValue; 1.19 @@ -44,13 +44,14 @@ 1.20 import com.sun.source.tree.CompilationUnitTree; 1.21 import com.sun.source.tree.Scope; 1.22 import com.sun.source.tree.Tree; 1.23 +import com.sun.source.util.JavacTask; 1.24 import com.sun.source.util.SourcePositions; 1.25 import com.sun.source.util.TreePath; 1.26 import com.sun.source.util.Trees; 1.27 import com.sun.tools.javac.code.Flags; 1.28 +import com.sun.tools.javac.code.Symbol; 1.29 import com.sun.tools.javac.code.Symbol.ClassSymbol; 1.30 import com.sun.tools.javac.code.Symbol.TypeSymbol; 1.31 -import com.sun.tools.javac.code.Symbol; 1.32 import com.sun.tools.javac.code.Type.UnionClassType; 1.33 import com.sun.tools.javac.comp.Attr; 1.34 import com.sun.tools.javac.comp.AttrContext; 1.35 @@ -61,8 +62,8 @@ 1.36 import com.sun.tools.javac.model.JavacElements; 1.37 import com.sun.tools.javac.parser.EndPosTable; 1.38 import com.sun.tools.javac.processing.JavacProcessingEnvironment; 1.39 +import com.sun.tools.javac.tree.JCTree; 1.40 import com.sun.tools.javac.tree.JCTree.*; 1.41 -import com.sun.tools.javac.tree.JCTree; 1.42 import com.sun.tools.javac.tree.TreeCopier; 1.43 import com.sun.tools.javac.tree.TreeInfo; 1.44 import com.sun.tools.javac.tree.TreeMaker; 1.45 @@ -95,12 +96,14 @@ 1.46 private JavacElements elements; 1.47 private JavacTaskImpl javacTaskImpl; 1.48 1.49 + // called reflectively from Trees.instance(CompilationTask task) 1.50 public static JavacTrees instance(JavaCompiler.CompilationTask task) { 1.51 if (!(task instanceof JavacTaskImpl)) 1.52 throw new IllegalArgumentException(); 1.53 return instance(((JavacTaskImpl)task).getContext()); 1.54 } 1.55 1.56 + // called reflectively from Trees.instance(ProcessingEnvironment env) 1.57 public static JavacTrees instance(ProcessingEnvironment env) { 1.58 if (!(env instanceof JavacProcessingEnvironment)) 1.59 throw new IllegalArgumentException(); 1.60 @@ -131,7 +134,10 @@ 1.61 resolve = Resolve.instance(context); 1.62 treeMaker = TreeMaker.instance(context); 1.63 memberEnter = MemberEnter.instance(context); 1.64 - javacTaskImpl = context.get(JavacTaskImpl.class); 1.65 + 1.66 + JavacTask t = context.get(JavacTask.class); 1.67 + if (t instanceof JavacTaskImpl) 1.68 + javacTaskImpl = (JavacTaskImpl) t; 1.69 } 1.70 1.71 public SourcePositions getSourcePositions() {