code-buster 0.11.0

Repository-aware static analysis for AI-assisted development
Documentation
{
  "id": "oop-refused-bequest",
  "language": "all",
  "group": "maintainability",
  "listingTitle": "Narrow an inheritance contract subclasses reject",
  "title": "Narrow an inheritance contract subclasses reject",
  "mvvm": false,
  "defaultSeverity": "info",
  "legacyGroup": "maintainability",
  "why": "Several subclasses rejecting inherited operations indicates that the base class promises behavior those subtypes cannot honor.",
  "suggestion": "Consider composition or smaller capability-specific base contracts so subclasses inherit only supported behavior.",
  "version": 4,
  "semanticMaturity": "project",
  "securityKind": "none",
  "taxonomy": [
    "maintainability"
  ],
  "requirements": [
    "declarations"
  ],
  "packs": [
    "dart-oop",
    "oop",
    "csharp",
    "typescript"
  ],
  "implementation": "src/languages/dart/oop/smells.rs",
  "languages": [
    "dart",
    "csharp",
    "java",
    "javascript",
    "typescript"
  ],
  "frameworks": [],
  "languageVersions": [],
  "limitations": [
    "Requires a directly declared base class with at least four instance methods and at least two direct subclasses.",
    "Each qualifying subclass must override and explicitly reject at least two inherited methods; at least three distinct operations must be rejected.",
    "Indirect inheritance, partial types, mixins, and resolved overrides are not analyzed."
  ]
}