|| state.types.isSubsignature(domainMethod, (ExecutableType) found.asType())) { found = domainMethodElement;
@Override public boolean isSubsignature(ExecutableType arg0, ExecutableType arg1) { return realImpl.isSubsignature(arg0, arg1); }
@Override public boolean isSubsignature(ExecutableType arg0, ExecutableType arg1) { return realImpl.isSubsignature(arg0, arg1); }
public static boolean isSubsignature(ExecutableType m1, ExecutableType m2) { return types.isSubsignature(m1, m2); }
@Override public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { return types.isSubsignature(m1, m2); }
@Override public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { return delegate.isSubsignature( m1, m2 ); }
@Override public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { return this.types.isSubsignature(m1, m2); }
public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { return typeUtils.isSubsignature(m1, m2); }
public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { return env.getTypeUtils().isSubsignature(m1, m2); }
public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { return env.getTypeUtils().isSubsignature(m1, m2); }
private static boolean hasMethod(ProcessingEnvironment processingEnv, TypeElement typeElement, ExecutableElement method) { for (ExecutableElement elementMethod: ElementFilter.methodsIn(typeElement.getEnclosedElements())) { if (processingEnv.getTypeUtils().isSubsignature((ExecutableType)elementMethod.asType(), (ExecutableType)method.asType())) { return true; } } return false; }
public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { while (m1 instanceof DecoratedExecutableType) { m1 = ((DecoratedExecutableType) m1).getDelegate(); } while (m2 instanceof DecoratedExecutableType) { m2 = ((DecoratedExecutableType) m2).getDelegate(); } return delegate.isSubsignature(m1, m2); }
public boolean isSubsignature(ExecutableType m1, ExecutableType m2) { while (m1 instanceof DecoratedExecutableType) { m1 = ((DecoratedExecutableType) m1).getDelegate(); } while (m2 instanceof DecoratedExecutableType) { m2 = ((DecoratedExecutableType) m2).getDelegate(); } return delegate.isSubsignature(m1, m2); }
private boolean isHidden(Element member, List<? extends Element> members, Elements elements, Types types) { for (ListIterator<? extends Element> it = members.listIterator(); it.hasNext();) { Element hider = it.next(); if (hider == member) return true; if (hider.getSimpleName().contentEquals(member.getSimpleName())) { if (elements.hides(member, hider)) { it.remove(); } else { if (member instanceof VariableElement && hider instanceof VariableElement && (!member.getKind().isField() || hider.getKind().isField())) return true; TypeMirror memberType = member.asType(); TypeMirror hiderType = hider.asType(); if (memberType.getKind() == TypeKind.EXECUTABLE && hiderType.getKind() == TypeKind.EXECUTABLE) { if (types.isSubsignature((ExecutableType)hiderType, (ExecutableType)memberType)) return true; } else { return false; } } } } return false; }
@Override public List<ExecutableElement> allAbstractMethods(DeclaredType declaredType) { return asTypeElement.visit(declaredType.asElement()).map(typeElement -> { List<P2<ExecutableElement, ExecutableType>> unorderedAbstractMethods = getMethods( Elements.getAllMembers(typeElement)).filter(this::abstractMethod) .map(e -> p2(e, (ExecutableType) Types.asMemberOf(declaredType, e))) .collect(toList()); Set<ExecutableElement> deduplicatedUnorderedAbstractMethods = IntStream.range(0, unorderedAbstractMethods.size()) .filter(i -> unorderedAbstractMethods.subList(0, i) .stream() .noneMatch(m -> m.match((predExecutableElement, predExecutableType) -> unorderedAbstractMethods.get(i) .match((executableElement, executableType) -> predExecutableElement.getSimpleName().equals(executableElement.getSimpleName()) && Types.isSubsignature(predExecutableType, executableType))))) .mapToObj(i -> unorderedAbstractMethods.get(i).match((executableElement, __) -> executableElement)) .collect(toSet()); return Stream.concat(getSuperTypeElements(typeElement), Stream.of(typeElement)) .flatMap(te -> te.getEnclosedElements().stream()) .map(asExecutableElement::visit) .flatMap(Utils::optionalAsStream) .filter(deduplicatedUnorderedAbstractMethods::contains) .collect(toList()); }).orElse(emptyList()); }
@Override public List<ExecutableElement> allAbstractMethods(DeclaredType declaredType) { return asTypeElement.visit(declaredType.asElement()).map(typeElement -> { List<P2<ExecutableElement, ExecutableType>> unorderedAbstractMethods = getMethods( Elements.getAllMembers(typeElement)).filter(this::abstractMethod) .map(e -> p2(e, (ExecutableType) Types.asMemberOf(declaredType, e))) .collect(toList()); Set<ExecutableElement> deduplicatedUnorderedAbstractMethods = IntStream.range(0, unorderedAbstractMethods.size()) .filter(i -> unorderedAbstractMethods.subList(0, i) .stream() .noneMatch(m -> m.match((predExecutableElement, predExecutableType) -> unorderedAbstractMethods.get(i) .match((executableElement, executableType) -> predExecutableElement.getSimpleName().equals(executableElement.getSimpleName()) && Types.isSubsignature(predExecutableType, executableType))))) .mapToObj(i -> unorderedAbstractMethods.get(i).match((executableElement, __) -> executableElement)) .collect(toSet()); return Stream.concat(getSuperTypeElements(typeElement), Stream.of(typeElement)) .flatMap(te -> te.getEnclosedElements().stream()) .map(asExecutableElement::visit) .flatMap(Utils::optionalAsStream) .filter(deduplicatedUnorderedAbstractMethods::contains) .collect(toList()); }).orElse(emptyList()); }
public boolean alreadyDefinedIn(CharSequence name, ExecutableType method, TypeElement enclClass) { Type.MethodType meth = ((Type)method).asMethodType(); ClassSymbol clazz = (ClassSymbol)enclClass; Scope scope = clazz.members(); Name n = names.fromString(name.toString()); for (Symbol sym : scope.getSymbolsByName(n, Scope.LookupKind.NON_RECURSIVE)) { if(sym.type instanceof ExecutableType && types.isSubsignature(meth, (ExecutableType)sym.type)) return true; } return false; }
|| state.types.isSubsignature(domainMethod, (ExecutableType) found.asType())) { found = domainMethodElement;
ExecutableType overriddenExecutable = MoreTypes.asExecutable(typeUtils.asMemberOf(inType, overridden)); return typeUtils.isSubsignature(overriderExecutable, overriddenExecutable); } catch (IllegalArgumentException e) {
if (smartType.getKind() == TypeKind.DECLARED) { ExecutableType descriptorType = tu.getDescriptorType((DeclaredType) smartType); if (descriptorType != null && types.isSubsignature((ExecutableType) type, descriptorType) && types.isSubtype(((ExecutableType) type).getReturnType(), descriptorType.getReturnType())) { return true;