Search in sources :

Example 41 with JCTree

use of org.eclipse.ceylon.langtools.tools.javac.tree.JCTree in project ceylon by eclipse.

the class TreeCopier method visitImport.

public JCTree visitImport(ImportTree node, P p) {
    JCImport t = (JCImport) node;
    JCTree qualid = copy(t.qualid, p);
    return M.at(t.pos).Import(qualid, t.staticImport);
}
Also used : JCTree(org.eclipse.ceylon.langtools.tools.javac.tree.JCTree)

Example 42 with JCTree

use of org.eclipse.ceylon.langtools.tools.javac.tree.JCTree in project ceylon by eclipse.

the class TreeCopier method visitWildcard.

public JCTree visitWildcard(WildcardTree node, P p) {
    JCWildcard t = (JCWildcard) node;
    TypeBoundKind kind = M.at(t.kind.pos).TypeBoundKind(t.kind.kind);
    JCTree inner = copy(t.inner, p);
    return M.at(t.pos).Wildcard(kind, inner);
}
Also used : JCTree(org.eclipse.ceylon.langtools.tools.javac.tree.JCTree)

Example 43 with JCTree

use of org.eclipse.ceylon.langtools.tools.javac.tree.JCTree in project ceylon by eclipse.

the class TreeCopier method visitLambdaExpression.

public JCTree visitLambdaExpression(LambdaExpressionTree node, P p) {
    JCLambda t = (JCLambda) node;
    List<JCVariableDecl> params = copy(t.params, p);
    JCTree body = copy(t.body, p);
    return M.at(t.pos).Lambda(params, body);
}
Also used : JCTree(org.eclipse.ceylon.langtools.tools.javac.tree.JCTree)

Example 44 with JCTree

use of org.eclipse.ceylon.langtools.tools.javac.tree.JCTree in project ceylon by eclipse.

the class JavacElements method getTreeAndTopLevel.

/**
 * Returns the tree node and compilation unit corresponding to this
 * element, or null if they can't be found.
 */
private Pair<JCTree, JCCompilationUnit> getTreeAndTopLevel(Element e) {
    Symbol sym = cast(Symbol.class, e);
    Env<AttrContext> enterEnv = getEnterEnv(sym);
    if (enterEnv == null)
        return null;
    JCTree tree = TreeInfo.declarationFor(sym, enterEnv.tree);
    if (tree == null || enterEnv.toplevel == null)
        return null;
    return new Pair<JCTree, JCCompilationUnit>(tree, enterEnv.toplevel);
}
Also used : Symbol(org.eclipse.ceylon.langtools.tools.javac.code.Symbol) JCTree(org.eclipse.ceylon.langtools.tools.javac.tree.JCTree) AttrContext(org.eclipse.ceylon.langtools.tools.javac.comp.AttrContext)

Example 45 with JCTree

use of org.eclipse.ceylon.langtools.tools.javac.tree.JCTree in project ceylon by eclipse.

the class JavacElements method getSourcePosition.

public JavacSourcePosition getSourcePosition(Element e, AnnotationMirror a) {
    Pair<JCTree, JCCompilationUnit> treeTop = getTreeAndTopLevel(e);
    if (treeTop == null)
        return null;
    JCTree tree = treeTop.fst;
    JCCompilationUnit toplevel = treeTop.snd;
    JavaFileObject sourcefile = toplevel.sourcefile;
    if (sourcefile == null)
        return null;
    JCTree annoTree = matchAnnoToTree(a, e, tree);
    if (annoTree == null)
        return null;
    return new JavacSourcePosition(sourcefile, annoTree.pos, toplevel.lineMap);
}
Also used : JavaFileObject(org.eclipse.ceylon.javax.tools.JavaFileObject) JCTree(org.eclipse.ceylon.langtools.tools.javac.tree.JCTree)

Aggregations

JCTree (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree)101 JCExpression (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCExpression)19 Tree (org.eclipse.ceylon.compiler.typechecker.tree.Tree)18 Symbol (org.eclipse.ceylon.langtools.tools.javac.code.Symbol)12 JCVariableDecl (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCVariableDecl)10 JCStatement (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCStatement)9 JavaFileObject (org.eclipse.ceylon.javax.tools.JavaFileObject)8 Type (org.eclipse.ceylon.langtools.tools.javac.code.Type)8 JCNewClass (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCNewClass)8 ListBuffer (org.eclipse.ceylon.langtools.tools.javac.util.ListBuffer)8 SyntheticName (org.eclipse.ceylon.compiler.java.codegen.Naming.SyntheticName)7 Type (org.eclipse.ceylon.model.typechecker.model.Type)6 JCAnnotation (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCAnnotation)5 JCBlock (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCBlock)4 JCClassDecl (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCClassDecl)4 JCCompilationUnit (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCCompilationUnit)4 JCPrimitiveTypeTree (org.eclipse.ceylon.langtools.tools.javac.tree.JCTree.JCPrimitiveTypeTree)4 TypedDeclaration (org.eclipse.ceylon.model.typechecker.model.TypedDeclaration)4 IOException (java.io.IOException)3 TaskEvent (org.eclipse.ceylon.langtools.source.util.TaskEvent)3