Uses of Class
org.ek9lang.antlr.EK9Parser.ObjectAccessExpressionContext
Packages that use EK9Parser.ObjectAccessExpressionContext
Package
Description
G - Full Symbol Resolution can now take place.
I - PRE Intermediate Representation generation checks.
Call graph infrastructure for EK9 compiler static analysis.
Contains critical general components used in the
Ek9Compiler listeners.-
Uses of EK9Parser.ObjectAccessExpressionContext in org.ek9lang.antlr
Methods in org.ek9lang.antlr that return EK9Parser.ObjectAccessExpressionContextModifier and TypeMethodDescriptionEK9Parser.AssignmentStatementContext.objectAccessExpression()EK9Parser.CaseExpressionContext.objectAccessExpression()EK9Parser.ExpressionContext.objectAccessExpression()EK9Parser.objectAccessExpression()EK9Parser.PipelinePartContext.objectAccessExpression()EK9Parser.StatementContext.objectAccessExpression()Methods in org.ek9lang.antlr with parameters of type EK9Parser.ObjectAccessExpressionContextModifier and TypeMethodDescriptionvoidEK9BaseListener.enterObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) Enter a parse tree produced byEK9Parser.objectAccessExpression().voidEK9Listener.enterObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) Enter a parse tree produced byEK9Parser.objectAccessExpression().voidEK9BaseListener.exitObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) Exit a parse tree produced byEK9Parser.objectAccessExpression().voidEK9Listener.exitObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) Exit a parse tree produced byEK9Parser.objectAccessExpression().EK9BaseVisitor.visitObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) Visit a parse tree produced byEK9Parser.objectAccessExpression().EK9Visitor.visitObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) Visit a parse tree produced byEK9Parser.objectAccessExpression(). -
Uses of EK9Parser.ObjectAccessExpressionContext in org.ek9lang.compiler.phase3
Classes in org.ek9lang.compiler.phase3 that implement interfaces with type arguments of type EK9Parser.ObjectAccessExpressionContextModifier and TypeClassDescription(package private) final classThis is the second part of the method/function chaining resolution and can be recursive via objectAccess.Methods in org.ek9lang.compiler.phase3 with parameters of type EK9Parser.ObjectAccessExpressionContextModifier and TypeMethodDescriptionvoidObjectAccessExpressionOrError.accept(EK9Parser.ObjectAccessExpressionContext ctx) voidExpressionsListener.exitObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) -
Uses of EK9Parser.ObjectAccessExpressionContext in org.ek9lang.compiler.phase5
Classes in org.ek9lang.compiler.phase5 that implement interfaces with type arguments of type EK9Parser.ObjectAccessExpressionContextModifier and TypeClassDescription(package private) final classChecks for excessive type traversal in method chains (Law of Demeter).(package private) final classIn the case of specific variables of type like 'Result' and 'Optional' it is important to check if the method being called needs a previous call to isOk or isError or just '?' before accessing specific methods.(package private) final classChecks that reveal() on Sensitive is only called from within a class or trait that is Privileged.Methods in org.ek9lang.compiler.phase5 with parameters of type EK9Parser.ObjectAccessExpressionContextModifier and TypeMethodDescriptionvoidExcessiveTypeTraversalOrError.accept(EK9Parser.ObjectAccessExpressionContext ctx) voidObjectAccessExpressionValidOrError.accept(EK9Parser.ObjectAccessExpressionContext ctx) voidPrivilegedRevealOrError.accept(EK9Parser.ObjectAccessExpressionContext ctx) (package private) voidObligationCensus.checkContainerUnwrap(EK9Parser.ObjectAccessExpressionContext ctx) Count each container unwrap (Optional.get/Result.ok/error/Iterator.next) in an object-access chain as aCONTAINER_UNWRAPobligation, GUARD-discharged when the access is safe.(package private) voidContainerUnwrapObligations.collectInto(EK9Parser.ObjectAccessExpressionContext ctx, ConstructObligations tally) voidLockAnalysisListener.enterObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) voidPreIRListener.enterObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) -
Uses of EK9Parser.ObjectAccessExpressionContext in org.ek9lang.compiler.phase5.callgraph
Methods in org.ek9lang.compiler.phase5.callgraph with parameters of type EK9Parser.ObjectAccessExpressionContextModifier and TypeMethodDescriptionvoidCallGraphCollector.exitObjectAccessExpression(EK9Parser.ObjectAccessExpressionContext ctx) -
Uses of EK9Parser.ObjectAccessExpressionContext in org.ek9lang.compiler.phase7.generator
Methods in org.ek9lang.compiler.phase7.generator with parameters of type EK9Parser.ObjectAccessExpressionContextModifier and TypeMethodDescriptionObjectAccessInstrGenerator.apply(EK9Parser.ObjectAccessExpressionContext ctx, VariableDetails variableDetails) Generate IR instructions for object access expression using resolved symbols.(package private) ObjectAccessInstrGenerator.ChainStepResultObjectAccessInstrGenerator.receiverOfFinalStep(EK9Parser.ObjectAccessExpressionContext ctx, List<IRInstr> instructions) THE receiver of a chain's FINAL step -getHolder()ingetHolder().name,keeper.holder()inkeeper.holder().name- evaluated into a temp by exactly the lowering the read side uses for the same chain (start, calls and property loads, with their ARC), so an assignment target that reaches its field through a call cannot lower the call differently from a read of it. -
Uses of EK9Parser.ObjectAccessExpressionContext in org.ek9lang.compiler.support
Classes in org.ek9lang.compiler.support that implement interfaces with type arguments of type EK9Parser.ObjectAccessExpressionContextModifier and TypeClassDescriptionfinal classTrue when the final step of the object-access chain (ObjectAccessFinalStep) is a method/operation call rather than a plain field identifier - e.g.final classTHE final.stepof anobjectAccessExpressionchain -.nameingetHolder().name- or null when the chain has no steps.final classNumber of.stepaccesses after the start of an object-access chain -this.codeis 1,this.sink.itemsis 2.final classTHE parse half of "is this a property of the object whose code is running?" (OwnPropertyis the symbol half): the formthis.prop(oralias.propwhen the caller's receiver test accepts the start), one step from the receiver, never through a further property or a call, which reach another object.final classTrue when the receiver of the final step of an object-access chain (ObjectAccessFinalStep) is only reached by CALLING something - the chain starts with a call (getHolder().name,Holder().name) or a step before the last is a call (keeper.holder().name,this.holder().name).Methods in org.ek9lang.compiler.support with parameters of type EK9Parser.ObjectAccessExpressionContextModifier and TypeMethodDescriptionObjectAccessFinalStep.apply(EK9Parser.ObjectAccessExpressionContext ctx) intObjectAccessStepCount.applyAsInt(EK9Parser.ObjectAccessExpressionContext ctx) booleanEndsWithOperationCall.test(EK9Parser.ObjectAccessExpressionContext ctx) booleanPropertyAccessedDirectly.test(EK9Parser.ObjectAccessExpressionContext objectAccessExpression, Predicate<EK9Parser.ObjectAccessStartContext> receiverTest) True when the object access is a single property step (start.prop, no further access, no call) from a start the receiver test accepts -PropertyAccessedDirectly.THIS_RECEIVERforthis.proponly.booleanReachesFinalStepThroughCall.test(EK9Parser.ObjectAccessExpressionContext ctx)