Class AcceptableExpressionComplexityOrError
java.lang.Object
org.ek9lang.compiler.phase5.AcceptableExpressionComplexityOrError
- All Implemented Interfaces:
Consumer<org.antlr.v4.runtime.tree.ParseTree>
class AcceptableExpressionComplexityOrError
extends Object
implements Consumer<org.antlr.v4.runtime.tree.ParseTree>
Checks expression complexity when a coalescing expression tree completes.
Emits E11013 error if complexity exceeds threshold.
Also adds expression complexity to method-level complexity counter.
With base costs of 1-2 and multiplier of 3^(depth-1), threshold of 15:
- Single operators at depth 1: 1-2 points - always pass
- Two nested operators: ~5 points - pass
- Three nested operators: ~17 points - flag for refactoring
This encourages developers to extract intermediate variables for deeply nested coalescing expressions, improving code readability while the compiler can optimize the intermediate variables back together if needed.
-
Constructor Summary
ConstructorsConstructorDescriptionAcceptableExpressionComplexityOrError(ErrorListener errorListener, ExpressionComplexityCounter expressionCounter, ComplexityCounter methodComplexityCounter) -
Method Summary
-
Constructor Details
-
AcceptableExpressionComplexityOrError
AcceptableExpressionComplexityOrError(ErrorListener errorListener, ExpressionComplexityCounter expressionCounter, ComplexityCounter methodComplexityCounter)
-
-
Method Details
-
accept
-