public void visitClass(Attribute.Class clazz) { result = ClassLiteral(clazz.classType).setType(syms.classType); } public void visitEnum(Attribute.Enum e) {
private JCExpression deserTest(JCExpression prev, String func, String lit) { MethodType eqmt = new MethodType(List.of(syms.objectType), syms.booleanType, List.<Type>nil(), syms.methodClass); Symbol eqsym = rs.resolveQualifiedMethod(null, attrEnv, syms.objectType, names.equals, List.of(syms.objectType), List.<Type>nil()); JCMethodInvocation eqtest = make.Apply( List.<JCExpression>nil(), make.Select(deserGetter(func, syms.stringType), eqsym).setType(eqmt), List.<JCExpression>of(make.Literal(lit))); eqtest.setType(syms.booleanType); JCBinary compound = make.Binary(JCTree.Tag.AND, prev, eqtest); compound.operator = rs.resolveBinaryOperator(null, JCTree.Tag.AND, attrEnv, syms.booleanType, syms.booleanType); compound.setType(syms.booleanType); return compound; }
public void visitClass(Attribute.Class clazz) { result = ClassLiteral(clazz.type).setType(syms.classType); } public void visitEnum(Attribute.Enum e) {
@Override public JCLiteral setType(Type type) { super.setType(type); return this; } @Override
/** Create a selection node from a qualifier tree and a symbol. * @param base The qualifier tree. */ public JCExpression Select(JCExpression base, Symbol sym) { return new JCFieldAccess(base, sym.name, sym).setPos(pos).setType(sym.type); }
/** Create an identifier from a symbol. */ public JCIdent Ident(Symbol sym) { return (JCIdent)new JCIdent((sym.name != names.empty) ? sym.name : sym.flatName(), sym) .setPos(pos) .setType(sym.type); }
private JCExpression deserGetter(String func, Type type, List<Type> argTypes, List<JCExpression> args) { MethodType getmt = new MethodType(argTypes, type, List.<Type>nil(), syms.methodClass); Symbol getsym = rs.resolveQualifiedMethod(null, attrEnv, syms.serializedLambdaType, names.fromString(func), argTypes, List.<Type>nil()); return make.Apply( List.<JCExpression>nil(), make.Select(make.Ident(kInfo.deserParamSym).setType(syms.serializedLambdaType), getsym).setType(getmt), args).setType(type); }
/** Create a selection node from a qualifier tree and a symbol. * @param base The qualifier tree. */ public JCExpression Select(JCExpression base, Symbol sym) { return new JCFieldAccess(base, sym.name, sym).setPos(pos).setType(sym.type); }
@Override public JCLiteral setType(Type type) { super.setType(type); return this; } @Override
@Override public JCLiteral setType(Type type) { super.setType(type); return this; } }
@Override public JCMethodInvocation setType(Type type) { super.setType(type); return this; } }
@Override public JCMethodInvocation setType(Type type) { super.setType(type); return this; } @Override
private JCExpression deserGetter(String func, Type type, List<Type> argTypes, List<JCExpression> args) { MethodType getmt = new MethodType(argTypes, type, List.<Type>nil(), syms.methodClass); Symbol getsym = rs.resolveQualifiedMethod(null, attrEnv, syms.serializedLambdaType, names.fromString(func), argTypes, List.<Type>nil()); return make.Apply( List.<JCExpression>nil(), make.Select(make.Ident(kInfo.deserParamSym).setType(syms.serializedLambdaType), getsym).setType(getmt), args).setType(type); }
/** Create an identifier from a symbol. */ public JCIdent Ident(Symbol sym) { return (JCIdent)new JCIdent((sym.name != names.empty) ? sym.name : sym.flatName(), sym) .setPos(pos) .setType(sym.type); }
/** Create an identifier from a symbol. */ public JCIdent Ident(Symbol sym) { return (JCIdent)new JCIdent((sym.name != names.empty) ? sym.name : sym.flatName(), sym) .setPos(pos) .setType(sym.type); }
public ExpressionTree QualIdent(Element element) { Symbol s = (Symbol) element; if (s.owner != null && (s.owner.kind == Kinds.Kind.MTH || s.owner.name.isEmpty())) { JCIdent result = make.at(NOPOS).Ident(s); result.setType(s.type); return result; } QualIdentTree result = new QualIdentTree(make.at(NOPOS).QualIdent(s.owner), s.name, s); result.setPos(make.pos).setType(s.type); return result; }
/** Create a selection node from a qualifier tree and a symbol. * @param base The qualifier tree. */ public JCExpression Select(JCExpression base, Symbol sym) { return new JCFieldAccess(base, sym.name, sym).setPos(pos).setType(sym.type); }
@Override public JCLiteral setType(Type type) { super.setType(type); return this; } @Override
/** Create a selection node from a qualifier tree and a symbol. * @param base The qualifier tree. */ public JCExpression Select(JCExpression base, Symbol sym) { return new JCFieldAccess(base, sym.name, sym).setPos(pos).setType(sym.type); }
/** Create an identifier from a symbol. */ public JCIdent Ident(Symbol sym) { return (JCIdent)new JCIdent((sym.name != names.empty) ? sym.name : sym.flatName(), sym) .setPos(pos) .setType(sym.type); }