Package org.codehaus.groovy.transform.tailrec

# Class RecursivenessTester

java.lang.Object
org.codehaus.groovy.transform.tailrec.RecursivenessTester

public class RecursivenessTester extends Object
Test if a method call is recursive if called within a given method node. Handles static calls as well.

Currently known simplifications:

- Does not check for method overloading or overridden methods
- Does not check for matching return types; even void and any object type are considered to be compatible
- Argument type matching could be more specific in case of static compilation
- Method names via a GString are never considered to be recursive

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RecursivenessTester()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isRecursive(Map<String,ASTNode> params)`
  `boolean`
  `isRecursive(MethodNode method, MethodCallExpression call)`
  `boolean`
  `isRecursive(MethodNode method, StaticMethodCallExpression call)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### RecursivenessTester

    public RecursivenessTester()

- ## Method Details

  - ### isRecursive

    public boolean isRecursive(Map<String,ASTNode> params)

  - ### isRecursive

    public boolean isRecursive(MethodNode method, MethodCallExpression call)

  - ### isRecursive

    public boolean isRecursive(MethodNode method, StaticMethodCallExpression call)