Class NonDescriptiveNameOrError

java.lang.Object
org.ek9lang.compiler.phase5.NonDescriptiveNameOrError
All Implemented Interfaces:
Consumer<org.antlr.v4.runtime.tree.ParseTree>

final class NonDescriptiveNameOrError extends Object implements Consumer<org.antlr.v4.runtime.tree.ParseTree>
Detects non-descriptive variable names (E11031).

Bans generic names like 'temp', 'flag', 'data' that correlate with higher defect rates based on academic research:

  • Lawrie et al. (2006): 19-31% increased comprehension time
  • Butler et al. (2010): 2.7x higher defect density
  • Hofmeister et al. (2017): 3.2x more bug reports

Exemptions:

  • Single-character names - Used for generic types (T, K, V), math variables (x, y, z), loop counters (i, j, k)

Academic evidence shows generic names like 'temp', 'flag', 'data' were involved in: Mars Climate Orbiter ($125M), Therac-25 (6 deaths), Toyota (89 deaths), Ariane 5 ($370M).

  • Constructor Details

  • Method Details

    • accept

      public void accept(org.antlr.v4.runtime.tree.ParseTree node)
      Specified by:
      accept in interface Consumer<org.antlr.v4.runtime.tree.ParseTree>