internal void RunSemanticAnalysisUpToValidation( DfirRoot dfirRoot, CompileCancellationToken cancellationToken = null, LifetimeVariableAssociation lifetimeVariableAssociation = null) { cancellationToken = cancellationToken ?? new CompileCancellationToken(); var unificationResults = new TerminalTypeUnificationResults(); RunSemanticAnalysisUpToSetVariableTypes(dfirRoot, cancellationToken, unificationResults, lifetimeVariableAssociation); new ValidateVariableUsagesTransform(unificationResults).Execute(dfirRoot, cancellationToken); }
internal void RunSemanticAnalysisUpToSetVariableTypes( DfirRoot dfirRoot, CompileCancellationToken cancellationToken = null, TerminalTypeUnificationResults unificationResults = null, LifetimeVariableAssociation lifetimeVariableAssociation = null) { cancellationToken = cancellationToken ?? new CompileCancellationToken(); unificationResults = unificationResults ?? new TerminalTypeUnificationResults(); lifetimeVariableAssociation = lifetimeVariableAssociation ?? new LifetimeVariableAssociation(); RunSemanticAnalysisUpToCreateNodeFacades(dfirRoot, cancellationToken); new MergeVariablesAcrossWiresTransform(lifetimeVariableAssociation, unificationResults).Execute(dfirRoot, cancellationToken); new FinalizeAutoBorrowsTransform().Execute(dfirRoot, cancellationToken); new MarkConsumedVariablesTransform(lifetimeVariableAssociation).Execute(dfirRoot, cancellationToken); }