@Override protected void doVisitInnerFunctionTypeReference(InnerFunctionTypeReference reference, ParameterizedTypeReference declaration) { super.doVisitInnerFunctionTypeReference(reference, declaration); outerVisit(declaration, reference.getOuter()); }
@Override protected Boolean doVisitInnerFunctionTypeReference(InnerFunctionTypeReference reference, LightweightTraversalData data) { if (!reference.getOuter().accept(this, data)) { return super.doVisitInnerFunctionTypeReference(reference, data); } return Boolean.TRUE; }
@Override protected Boolean doVisitInnerFunctionTypeReference(InnerFunctionTypeReference reference) { Boolean result = reference.getOuter().accept(this) && doVisitParameterizedTypeReference(reference); return result; }
@Override protected SubstitutionResult doVisitInnerFunctionTypeReference(InnerFunctionTypeReference reference, VarianceInfo varianceInfo) { SubstitutionResult visitedOuter = reference.getOuter().accept(this, varianceInfo); InnerFunctionTypeReference result = owner.newFunctionTypeReference(visitedOuter.typeReference, reference.getType()); return doSubstituteFunctionType(reference, result, visitedOuter.didSubstitute); }
@Override protected LightweightTypeReference doVisitInnerFunctionTypeReference(InnerFunctionTypeReference reference, Visiting visiting) { if (reference.isResolved() && reference.isOwnedBy(getOwner())) return reference; LightweightTypeReference outer = reference.getOuter().accept(this, visiting); InnerFunctionTypeReference result = getOwner().newFunctionTypeReference(outer, reference.getType()); enhanceFunctionType(reference, result, visiting); return result; }
@Override protected void doVisitInnerFunctionTypeReference(final InnerFunctionTypeReference reference) { boolean _isJava = this.appender.isJava(); if (_isJava) { reference.getOuter().accept(this); this.appender.append("."); this.appender.append(reference.getType().getSimpleName()); boolean _isEmpty = reference.getTypeArguments().isEmpty(); boolean _not = (!_isEmpty); if (_not) { this.appender.append("<"); this.appendCommaSeparated(reference.getTypeArguments()); this.appender.append(">"); } } else { this.appender.append("("); this.appendCommaSeparated(reference.getParameterTypes()); this.appender.append(")=>"); LightweightTypeReference _returnType = reference.getReturnType(); boolean _tripleEquals = (_returnType == null); if (_tripleEquals) { this.appender.append("void"); } else { reference.getReturnType().accept(this); } } }