Skip to content

Rule: Function/class removed (function-removed) #19

@ddjain

Description

@ddjain

Rule: Function/Class Removal Detection

Overview

Identifies when functions, classes, or major code blocks are removed (not just refactored).

Label Metadata

  • Label Name: function-removed
  • Color: fbca04 (Yellow)
  • Description: Functions or classes removed from codebase

Detection Logic

Analyze diff for removal of code structures:

Patterns to detect:

  • Function removals: -function, -def, -fn
  • Class removals: -class, -struct
  • Export removals: -export function, -export class
  • File deletions with substantial code

Heuristics

  • High ratio of deletions vs additions (>70% deletions)
  • Function/class definitions removed (not moved)
  • Multiple removals detected

Example Code That Triggers

- function deprecatedFunction() {
-   // entire function removed
- }
-
- class OldComponent {
-   // entire class removed
- }

Example Code That Does NOT Trigger

  • Function refactored (moved/renamed)
  • Code refactored (same functionality)
  • Small code cleanup

Test Cases Needed

  • Detects function removals
  • Detects class removals
  • Detects export removals
  • Handles file deletions
  • Distinguishes from refactoring (rename)
  • Ignores small code cleanup

Edge Cases

  • Function extracted (moved) vs removed
  • Deprecated functions (should still trigger)
  • Temporary code removal for refactoring

Integration Notes

  • Important for tracking breaking changes
  • May want to combine with changelog generation
  • Consider relationship with refactor rule

Priority

Medium - Important for change tracking


Status: Not implemented
Category: Logic, Refactor & Naming

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions