/** * Prints a literal. */ @Override public void visitLiteral(JCLiteral literal) { String s = literal.toString(); switch (literal.typetag) { case FLOAT: if (s.endsWith("F")) { s = s.substring(0, s.length() - 1); } break; case LONG: if (s.endsWith("L")) { s = s.substring(0, s.length() - 1); } break; default: } print(s); }
/** * Extracts the long literal corresponding to a given {@link LiteralTree} node from the source * code as a string. Returns null if the source code is not available. */ private static String getLongLiteral(LiteralTree literalTree, VisitorState state) { JCLiteral longLiteral = (JCLiteral) literalTree; CharSequence sourceFile = state.getSourceCode(); if (sourceFile == null) { return null; } int start = longLiteral.getStartPosition(); java.util.regex.Matcher matcher = LONG_LITERAL_PATTERN.matcher(sourceFile.subSequence(start, sourceFile.length())); if (matcher.lookingAt()) { return matcher.group(); } return null; }
List.<JCExpression>of(make.Literal(INT, 0).setType(syms.intType)), null); newcache.type = new ArrayType(types.erasure(outerCacheClass.type),
List.<JCExpression>of(make.Literal(INT, 0).setType(syms.intType)), null); newcache.type = new ArrayType(types.erasure(outerCacheClass.type),
List.<JCExpression>of(make.Literal(INT, 0).setType(syms.intType)), null); newcache.type = new ArrayType(types.erasure(outerCacheClass.type),
List.<JCExpression>of(make.Literal(INT, 0).setType(syms.intType)), null); newcache.type = new ArrayType(types.erasure(outerCacheClass.type),
String suppression = state.getTreeMaker().Literal(CLASS, warningToSuppress).toString();
break; case BOOLEAN: print(tree.getValue().toString()); break; case BOT:
String customDiagnosticMessage; if (byteMatch) { String replacement = Byte.toString(((Number) literal.getValue()).byteValue()); fix = SuggestedFix.replace(literal, replacement); customDiagnosticMessage = (int) Byte.MIN_VALUE, (int) Byte.MAX_VALUE, literal.toString(), Boolean.toString(willEvaluateTo)); } else { (int) Character.MIN_VALUE, (int) Character.MAX_VALUE, literal.toString(), Boolean.toString(willEvaluateTo));
make.Ident(classDollarSym(pos)), List.<JCExpression>of(make.Literal(CLASS, sig) .setType(syms.stringType)))) .setType(types.erasure(syms.classType)), make.Ident(cs)).setType(types.erasure(syms.classType));
List.<JCExpression>of(make.Literal(CLASS, sig) .setType(syms.stringType)))) .setType(types.erasure(syms.classType)), make.Ident(cs)).setType(types.erasure(syms.classType)); default:
trans_block.stats = trans_block.stats.append(make.Return(make.Literal(BOT, null).setType(syms.botType)));
make.Ident(classDollarSym(pos)), List.<JCExpression>of(make.Literal(CLASS, sig) .setType(syms.stringType)))) .setType(types.erasure(syms.classType)), make.Ident(cs)).setType(types.erasure(syms.classType));
List.<JCExpression>of(make.Literal(CLASS, sig) .setType(syms.stringType)))) .setType(types.erasure(syms.classType)), make.Ident(cs)).setType(types.erasure(syms.classType)); default:
if (value instanceof String) { result = Literal(CLASS, value). setType(syms.stringType.constType(value)); } else if (value instanceof Integer) { result = Literal(INT, value). setType(syms.intType.constType(value)); } else if (value instanceof Long) { result = Literal(LONG, value). setType(syms.longType.constType(value)); } else if (value instanceof Byte) { result = Literal(BYTE, value). setType(syms.byteType.constType(value)); } else if (value instanceof Character) { int v = (int) (((Character) value).toString().charAt(0)); result = Literal(CHAR, value). setType(syms.charType.constType(v)); } else if (value instanceof Double) { result = Literal(DOUBLE, value). setType(syms.doubleType.constType(value)); } else if (value instanceof Float) { result = Literal(FLOAT, value). setType(syms.floatType.constType(value)); } else if (value instanceof Short) { result = Literal(SHORT, value). setType(syms.shortType.constType(value)); } else if (value instanceof Boolean) { int v = ((Boolean) value) ? 1 : 0; result = Literal(BOOLEAN, v). setType(syms.booleanType.constType(v));