# lint_rules.lint_rules.debug_rules

Classes

`ArgSizeMismatchRule`() | Rule to check for argument size mismatch in subroutine/function calls
`DynamicUboundCheckRule`() | Rule to check for run-time ubound checks for assumed shape dummy arguments

class ArgSizeMismatchRule

  Bases: `GenericRule`

  Rule to check for argument size mismatch in subroutine/function calls

  type = 2

    The rule type as one of the categories in `RuleType`

  config = {'max_indirections': 2}

    Dict of configuration keys and their default values

    These values can be overriden externally in the linter config file and are passed automatically to the `check()` routine.

  static range_to_sum(lower, upper)

    Method to convert lower and upper bounds of a `RangeIndex` to a `Sum` expression.

  static compare_sizes(arg_size, alt_arg_size, dummy_arg_size)

    Compare all possible argument size candidates with dummy arg size.

  classmethod get_explicit_arg_size(arg, dims)

    Method to return the size of a subroutine argument whose bounds are explicitly declared.

  classmethod get_implicit_arg_size(arg, dims)

    Method to return the size of a subroutine argument whose bounds are potentially implicitly declared.

  classmethod check_subroutine(subroutine, rule_report, config, **kwargs)

    Method to check for argument size mismatches across subroutine calls. It requires all `CallStatement` nodes to be enriched, and requires all subroutine arguments to not be of type `DeferredTypeSymbol`. Therefore relevant modules should be parsed before parsing the current `Subroutine`.

class DynamicUboundCheckRule

  Bases: `GenericRule`

  Rule to check for run-time ubound checks for assumed shape dummy arguments

  type = 2

    The rule type as one of the categories in `RuleType`

  fixable = True

    Indicator for a fixable rule that implements a corresponding `fix()` routine

  static is_assumed_shape(arg)

    Method to check if argument is an assumed shape array.

  static get_ubound_checks(subroutine)

    Method to return UBOUND checks nested within a `Conditional`.

  classmethod get_assumed_shape_args(subroutine)

    Method to return all assumed-shape dummy arguments in a `Subroutine`.

  classmethod check_subroutine(subroutine, rule_report, config, **kwargs)

    Method to check for run-time ubound checks for assumed shape dummy arguments

  classmethod fix_subroutine(subroutine, rule_report, config)

    Method to fix run-time ubound checks for assumed shape dummy arguments