Class DynamicClassComparatorRetraction
java.lang.Object
org.ek9lang.antlr.EK9BaseListener
org.ek9lang.compiler.phase5.DynamicClassComparatorRetraction
- All Implemented Interfaces:
org.antlr.v4.runtime.tree.ParseTreeListener, EK9Listener
D62 (Steve's rule, D55/D58): the retraction of a bare
default operator's ordering family reaches the dynamic
classes too. DefaultComparatorRecheckOrError walks the module scope, and a dynamic class is not in it -
it is declared inside the code that creates it, wherever that is (a function, a method, a program, a generic's
body) - so this walk of the parse tree finds each one by its declaration and hands it to the SAME recheck, which asks
the SAME decision (Sameness.bareOrderingRetracted, over the fields a generated operator walks, captures
included). Holds no shared state beyond the symbols it marks; the decision reads methods as declared, so it is safe in
the phase's parallel per-source walk and independent of the order types are visited in.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidExit a parse tree produced byEK9Parser.dynamicClassDeclaration().Methods inherited from class EK9BaseListener
enterAccessModifier, enterAggregateParts, enterAggregateProperty, enterAllowingOnly, enterApplicationBlock, enterApplicationDeclaration, enterArgumentParam, enterAspectDeclaration, enterAssertDoesNotThrowExpression, enterAssertPanicExpression, enterAssertStatement, enterAssertThrowsExpression, enterAssignmentExpression, enterAssignmentStatement, enterBinaryLit, enterBinaryLiteral, enterBlock, enterBlockStatement, enterBooleanLit, enterBooleanLiteral, enterBytesLit, enterBytesLiteral, enterCall, enterCaseExpression, enterCaseStatement, enterCatchStatementExpression, enterCharacterLit, enterCharacterLiteral, enterClassBlock, enterClassDeclaration, enterColourLit, enterColourLiteral, enterCompilationUnit, enterComponentBlock, enterComponentDeclaration, enterConstantBlock, enterConstantDeclaration, enterConstantInitialiser, enterConstrainDeclaration, enterConstrainType, enterDateLit, enterDateLiteral, enterDateTimeLit, enterDateTimeLiteral, enterDeclareArgumentParam, enterDecorationDimensionLiteral, enterDecorationResolutionLiteral, enterDefaultOperator, enterDict, enterDimensionLit, enterDirective, enterDirectivePart, enterDottedName, enterDurationLit, enterDurationLiteral, enterDynamicClassDeclaration, enterDynamicFunctionBody, enterDynamicFunctionDeclaration, enterDynamicVariableCapture, enterElseOnlyBlock, enterEmptyBlock, enterEnumerationDeclaration, enterEveryRule, enterExcludedControlFlowStatement, enterExcludedInstantiation, enterExcludedListComprehension, enterExcludedLiteral, enterExcludedParameters, enterExpression, enterExpressionParam, enterExtendDeclaration, enterExtendPreamble, enterFinallyStatementExpression, enterFloatingPointLit, enterFloatingPointLiteral, enterForLoop, enterForRange, enterForStatementExpression, enterFunctionBlock, enterFunctionDeclaration, enterHttpAccess, enterHttpVerb, enterIdentifier, enterIdentifierReference, enterIfControlBlock, enterIfStatement, enterInitValuePair, enterInstructionBlock, enterIntegerLit, enterIntegerLiteral, enterList, enterMethodDeclaration, enterMillisecondLit, enterMillisecondLiteral, enterModuleBlock, enterModuleDeclaration, enterModuleSegment, enterMoneyLit, enterMoneyLiteral, enterNonIdentifierOperator, enterObjectAccess, enterObjectAccessExpression, enterObjectAccessStart, enterObjectAccessType, enterOperationCall, enterOperationDetails, enterOperator, enterOperatorDeclaration, enterPackageBlock, enterParameterisedArgs, enterParameterisedDetail, enterParameterisedParams, enterParameterisedType, enterParamExpression, enterPathLit, enterPathLiteral, enterPipelinePart, enterPreFlowAndControl, enterPreFlowStatement, enterPrimary, enterPrimaryReference, enterProgramBlock, enterRange, enterRecordBlock, enterRecordDeclaration, enterReferencesBlock, enterRegExLit, enterRegisterStatement, enterRegularExpressionLiteral, enterRequireStatement, enterReservedWord, enterResolutionLit, enterReturningParam, enterSecurityConstraint, enterServiceBlock, enterServiceDeclaration, enterServiceOperationDeclaration, enterSheBang, enterSingleStatementBlock, enterStatement, enterStreamCat, enterStreamExpression, enterStreamExpressionTermination, enterStreamFor, enterStreamPart, enterStreamSource, enterStreamStatement, enterStreamStatementTermination, enterStringLit, enterStringLiteral, enterStringPart, enterSwitchStatementExpression, enterTernaryPart, enterTextBlock, enterTextBodyDeclaration, enterTextDeclaration, enterThrowStatement, enterTimeLit, enterTimeLiteral, enterTraitBlock, enterTraitDeclaration, enterTraitPreamble, enterTraitReference, enterTraitsList, enterTryStatementExpression, enterTypeBlock, enterTypeDeclaration, enterTypeDef, enterVariableDeclaration, enterVariableOnlyDeclaration, enterVersionNumberLit, enterVersionNumberLiteral, enterWebVariableCorrelation, enterWhileStatementExpression, exitAccessModifier, exitAggregateParts, exitAggregateProperty, exitAllowingOnly, exitApplicationBlock, exitApplicationDeclaration, exitArgumentParam, exitAspectDeclaration, exitAssertDoesNotThrowExpression, exitAssertPanicExpression, exitAssertStatement, exitAssertThrowsExpression, exitAssignmentExpression, exitAssignmentStatement, exitBinaryLit, exitBinaryLiteral, exitBlock, exitBlockStatement, exitBooleanLit, exitBooleanLiteral, exitBytesLit, exitBytesLiteral, exitCall, exitCaseExpression, exitCaseStatement, exitCatchStatementExpression, exitCharacterLit, exitCharacterLiteral, exitClassBlock, exitClassDeclaration, exitColourLit, exitColourLiteral, exitCompilationUnit, exitComponentBlock, exitComponentDeclaration, exitConstantBlock, exitConstantDeclaration, exitConstantInitialiser, exitConstrainDeclaration, exitConstrainType, exitDateLit, exitDateLiteral, exitDateTimeLit, exitDateTimeLiteral, exitDeclareArgumentParam, exitDecorationDimensionLiteral, exitDecorationResolutionLiteral, exitDefaultOperator, exitDict, exitDimensionLit, exitDirective, exitDirectivePart, exitDottedName, exitDurationLit, exitDurationLiteral, exitDynamicFunctionBody, exitDynamicFunctionDeclaration, exitDynamicVariableCapture, exitElseOnlyBlock, exitEmptyBlock, exitEnumerationDeclaration, exitEveryRule, exitExcludedControlFlowStatement, exitExcludedInstantiation, exitExcludedListComprehension, exitExcludedLiteral, exitExcludedParameters, exitExpression, exitExpressionParam, exitExtendDeclaration, exitExtendPreamble, exitFinallyStatementExpression, exitFloatingPointLit, exitFloatingPointLiteral, exitForLoop, exitForRange, exitForStatementExpression, exitFunctionBlock, exitFunctionDeclaration, exitHttpAccess, exitHttpVerb, exitIdentifier, exitIdentifierReference, exitIfControlBlock, exitIfStatement, exitInitValuePair, exitInstructionBlock, exitIntegerLit, exitIntegerLiteral, exitList, exitMethodDeclaration, exitMillisecondLit, exitMillisecondLiteral, exitModuleBlock, exitModuleDeclaration, exitModuleSegment, exitMoneyLit, exitMoneyLiteral, exitNonIdentifierOperator, exitObjectAccess, exitObjectAccessExpression, exitObjectAccessStart, exitObjectAccessType, exitOperationCall, exitOperationDetails, exitOperator, exitOperatorDeclaration, exitPackageBlock, exitParameterisedArgs, exitParameterisedDetail, exitParameterisedParams, exitParameterisedType, exitParamExpression, exitPathLit, exitPathLiteral, exitPipelinePart, exitPreFlowAndControl, exitPreFlowStatement, exitPrimary, exitPrimaryReference, exitProgramBlock, exitRange, exitRecordBlock, exitRecordDeclaration, exitReferencesBlock, exitRegExLit, exitRegisterStatement, exitRegularExpressionLiteral, exitRequireStatement, exitReservedWord, exitResolutionLit, exitReturningParam, exitSecurityConstraint, exitServiceBlock, exitServiceDeclaration, exitServiceOperationDeclaration, exitSheBang, exitSingleStatementBlock, exitStatement, exitStreamCat, exitStreamExpression, exitStreamExpressionTermination, exitStreamFor, exitStreamPart, exitStreamSource, exitStreamStatement, exitStreamStatementTermination, exitStringLit, exitStringLiteral, exitStringPart, exitSwitchStatementExpression, exitTernaryPart, exitTextBlock, exitTextBodyDeclaration, exitTextDeclaration, exitThrowStatement, exitTimeLit, exitTimeLiteral, exitTraitBlock, exitTraitDeclaration, exitTraitPreamble, exitTraitReference, exitTraitsList, exitTryStatementExpression, exitTypeBlock, exitTypeDeclaration, exitTypeDef, exitVariableDeclaration, exitVariableOnlyDeclaration, exitVersionNumberLit, exitVersionNumberLiteral, exitWebVariableCorrelation, exitWhileStatementExpression, visitErrorNode, visitTerminal
-
Constructor Details
-
DynamicClassComparatorRetraction
DynamicClassComparatorRetraction(ParsedModule parsedModule, ISymbol ek9Any)
-
-
Method Details
-
exitDynamicClassDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.dynamicClassDeclaration().The default implementation does nothing.
- Specified by:
exitDynamicClassDeclarationin interfaceEK9Listener- Overrides:
exitDynamicClassDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-