private static ParameterTypes findCallable(ParameterTypes[] callables, CallableAcceptor acceptor, IRubyObject... args) { ParameterTypes bestCallable = null; int bestScore = -1; for (int k = 0; k < callables.length; k++) { ParameterTypes callable = callables[k]; if (acceptor.accept(callable, args)) { int currentScore = getExactnessScore(callable, args); if (currentScore > bestScore) { bestCallable = callable; bestScore = currentScore; } } } return bestCallable; }
private static <T extends ParameterTypes> T findCallable(T[] callables, CallableAcceptor acceptor, IRubyObject[] args) { T bestCallable = null; int bestScore = -1; for ( int i = 0; i < callables.length; i++ ) { final T callable = callables[i]; if ( acceptor.accept(callable, args) ) { int currentScore = calcExactnessScore(callable, args); if (currentScore > bestScore) { bestCallable = callable; bestScore = currentScore; } } } return bestCallable; }
private static <T extends ParameterTypes> T findCallable(T[] callables, CallableAcceptor acceptor, IRubyObject[] args) { T bestCallable = null; int bestScore = -1; for ( int i = 0; i < callables.length; i++ ) { final T callable = callables[i]; if ( acceptor.accept(callable, args) ) { int currentScore = calcExactnessScore(callable, args); if (currentScore > bestScore) { bestCallable = callable; bestScore = currentScore; } } } return bestCallable; }
private static ParameterTypes findCallable(ParameterTypes[] callables, CallableAcceptor acceptor, IRubyObject... args) { ParameterTypes bestCallable = null; int bestScore = -1; for (int k = 0; k < callables.length; k++) { ParameterTypes callable = callables[k]; if (acceptor.accept(callable, args)) { int currentScore = getExactnessScore(callable, args); if (currentScore > bestScore) { bestCallable = callable; bestScore = currentScore; } } } return bestCallable; }