# File lib/rake.rb, line 1501
1501:     def enhance_with_matching_rule(task_name, level=0)
1502:       fail Rake::RuleRecursionOverflowError,
1503:         "Rule Recursion Too Deep" if level >= 16
1504:       @rules.each do |pattern, extensions, block|
1505:         if md = pattern.match(task_name)
1506:           task = attempt_rule(task_name, extensions, block, level)
1507:           return task if task
1508:         end
1509:       end
1510:       nil
1511:     rescue Rake::RuleRecursionOverflowError => ex
1512:       ex.add_target(task_name)
1513:       fail ex
1514:     end