Uses of Interface
org.ek9lang.compiler.common.CodeFlowAnalyzer
Packages that use CodeFlowAnalyzer
Package
Description
Common parts of processing that can be reused across various phases.
I - PRE Intermediate Representation generation checks.
-
Uses of CodeFlowAnalyzer in org.ek9lang.compiler.common
Classes in org.ek9lang.compiler.common that implement CodeFlowAnalyzerModifier and TypeClassDescription(package private) classDesigned to be used in a transient manner when interacting with variables.(package private) final classTHE question "has every path through the body given this returning variable a NEW value, so the value it was declared with can never be the one returned?" - asked of a returning variable that HAS an initialiser (<- rtn as Integer: Integer()).(package private) final classUsed to check if variables within code blocks when declared without being initialised, actually get initialised before they are used.(package private) final classChecks to see if a variable has a specific generic type.(package private) final classChecks to see if a property on an aggregate is safe to access.Methods in org.ek9lang.compiler.common that return types with arguments of type CodeFlowAnalyzerModifier and TypeMethodDescriptionSymbolsAndScopes.getCodeFlowAnalyzers()Provide access to the set of code flow analyzers being used for flow analysis. -
Uses of CodeFlowAnalyzer in org.ek9lang.compiler.phase5
Methods in org.ek9lang.compiler.phase5 with parameters of type CodeFlowAnalyzerModifier and TypeMethodDescriptionprotected booleanPossibleExpressionConstruct.isVariableInitialisedInScopes(CodeFlowAnalyzer analyzer, ISymbol variable, List<IScope> scopes) protected voidPossibleExpressionConstruct.processPossibleGuardInitialisation(CodeFlowAnalyzer analyzer, ISymbol guardVariable, org.antlr.v4.runtime.ParserRuleContext ctx) Now when there is a preflow control, it may mean that a variable is initialised.protected voidPossibleExpressionConstruct.pullUpAcceptableCriteriaToHigherScope(CodeFlowAnalyzer analyzer, List<IScope> allAppropriateBlocks, IScope outerScope)