@Override public Type<?> visitArrayType(final Type<?> type, final Boolean recurse) { return erasure(type.getElementType(), recurse).makeArrayType(); } };
Type getRootElementType() { Type rootElementType = this; while (rootElementType.hasElementType()) { rootElementType = rootElementType.getElementType(); } return rootElementType; }
Type getRootElementType() { Type rootElementType = this; while (rootElementType.hasElementType()) { rootElementType = rootElementType.getElementType(); } return rootElementType; }
@Override public Type<?> visitArrayType(final Type<?> type, final Boolean recurse) { return erasure(type.getElementType(), recurse).makeArrayType(); } };
@Override public Boolean visitArrayType(final Type t, final Void ignored) { return visit(t.getElementType()); }
@Override public Type<?> visitArrayType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldElementType = type.getElementType(); final Type<?> newElementType = visit(oldElementType); if (newElementType != oldElementType) { return newElementType.makeArrayType(); } return type; } }
@Override public Void visitArrayType(final Type<?> type, final MemberInfo scope) { super.visitArrayType(type, scope); _frames.push(new VerifierFrame(FrameType.TYPE_SIGNATURE, type)); type.getElementType().accept(this, scope); _frames.pop(); return null; }
@Override public Type<?> visitArrayType(final Type<?> type, final Void parameter) { final Type<?> oldElementType = type.getElementType(); final Type<?> newElementType = visit(oldElementType); if (newElementType != oldElementType) { return newElementType.makeArrayType(); } return type; } };
@Override public Type<?> visitArrayType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldElementType = type.getElementType(); final Type<?> newElementType = visit(oldElementType); if (newElementType != oldElementType) { return newElementType.makeArrayType(); } return type; }
@Override public Type<?> visitArrayType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldElementType = type.getElementType(); final Type<?> newElementType = visit(oldElementType); if (newElementType != oldElementType) { return newElementType.makeArrayType(); } return type; } }
public void emitNewArray(final Type<?> arrayType) { VerifyArgument.notNull(arrayType, "arrayType"); if (!arrayType.isArray()) { throw Error.typeMustBeArray(); } Type<?> elementType = arrayType.getElementType(); int rank = 1; while (elementType.isArray()) { ++rank; elementType = elementType.getElementType(); } emitNewArray(arrayType, rank); }
@Override public Type<?> visitArrayType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldElementType = type.getElementType(); final Type<?> newElementType = visit(oldElementType, bindings); if (TypeUtils.areEquivalent(oldElementType, newElementType)) { return type; } return newElementType.makeArrayType(); } }
@Override public Type<?> visitArrayType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldElementType = type.getElementType(); final Type<?> newElementType = visit(oldElementType, bindings); if (TypeUtils.areEquivalent(oldElementType, newElementType)) { return type; } return newElementType.makeArrayType(); }
@Override public Type<?> visitArrayType(final Type<?> type, final TypeBindings bindings) { final Type<?> oldElementType = type.getElementType(); final Type<?> newElementType = visit(oldElementType, bindings); if (TypeUtils.areEquivalent(oldElementType, newElementType)) { return type; } return newElementType.makeArrayType(); } }
public static Type elementType(final Type t) { if (t.isArray()) { return t.getElementType(); } if (t.isWildcardType()) { return elementType(upperBound(t)); } return null; }
public static Type elementType(final Type t) { if (t.isArray()) { return t.getElementType(); } if (t.isWildcardType()) { return elementType(upperBound(t)); } return null; }
@Override public Type visitArrayType(final Type t, final Void ignored) { final Type elementType = t.getElementType(); if (elementType.isPrimitive() || isSameType(elementType, Types.Object)) { return arraySuperType(); } else { return new ArrayType(superType(elementType)); } } };
@Override public Type visitArrayType(final Type t, final Void ignored) { final Type elementType = t.getElementType(); if (elementType.isPrimitive() || isSameType(elementType, Types.Object)) { return arraySuperType(); } else { return new ArrayType(superType(elementType)); } } };
@Override public Type visitArrayType(final Type t, final Void ignored) { final Type elementType = t.getElementType(); if (elementType.isPrimitive() || isSameType(elementType, Types.Object)) { return arraySuperType(); } else { return new ArrayType(superType(elementType)); } } };
@Override public Boolean visitArrayType(final Type t, final Type s) { final Type elementType = t.getElementType(); if (elementType.isPrimitive()) { return isSameType(elementType, elementType(s)); } return isSubtypeNoCapture(elementType, elementType(s)); } };