public final void endVisit(final ReturnStatement node) { final Expression expression= node.getExpression(); if (expression != null) { final ConstraintVariable2 descendant= (ConstraintVariable2) expression.getProperty(PROPERTY_CONSTRAINT_VARIABLE); if (descendant != null) { final MethodDeclaration declaration= (MethodDeclaration) fCurrentMethods.peek(); if (declaration != null) { final IMethodBinding binding= declaration.resolveBinding(); if (binding != null) { final ConstraintVariable2 ancestor= fModel.createReturnTypeVariable(binding); if (ancestor != null) { node.setProperty(PROPERTY_CONSTRAINT_VARIABLE, ancestor); fModel.createSubtypeConstraint(descendant, ancestor); } } } } } }
@Override public final void endVisit(final ReturnStatement node) { final Expression expression= node.getExpression(); if (expression != null) { final ConstraintVariable2 descendant= (ConstraintVariable2) expression.getProperty(PROPERTY_CONSTRAINT_VARIABLE); if (descendant != null) { ASTNode methodOrLambda= fCurrentMethodsAndLambdas.peek(); IMethodBinding binding = null; if (methodOrLambda instanceof MethodDeclaration) { binding= ((MethodDeclaration) methodOrLambda).resolveBinding(); } else if (methodOrLambda instanceof LambdaExpression) { binding= ((LambdaExpression) methodOrLambda).resolveMethodBinding(); } if (binding != null) { final ConstraintVariable2 ancestor= fModel.createReturnTypeVariable(binding); if (ancestor != null) { node.setProperty(PROPERTY_CONSTRAINT_VARIABLE, ancestor); fModel.createSubtypeConstraint(descendant, ancestor); } } } } }
@Override public final void endVisit(final ReturnStatement node) { final Expression expression= node.getExpression(); if (expression != null) { final ConstraintVariable2 descendant= (ConstraintVariable2) expression.getProperty(PROPERTY_CONSTRAINT_VARIABLE); if (descendant != null) { ASTNode methodOrLambda= fCurrentMethodsAndLambdas.peek(); IMethodBinding binding = null; if (methodOrLambda instanceof MethodDeclaration) { binding= ((MethodDeclaration) methodOrLambda).resolveBinding(); } else if (methodOrLambda instanceof LambdaExpression) { binding= ((LambdaExpression) methodOrLambda).resolveMethodBinding(); } if (binding != null) { final ConstraintVariable2 ancestor= fModel.createReturnTypeVariable(binding); if (ancestor != null) { node.setProperty(PROPERTY_CONSTRAINT_VARIABLE, ancestor); fModel.createSubtypeConstraint(descendant, ancestor); } } } } }