public static EmitLimitationInfo Calculate(SemanticModel model) { var diagnosticWriter = ToListDiagnosticWriter.Create(); var moduleScopeData = ScopeHelper.GetModuleScopeInfo(model, diagnosticWriter); var resourceScopeData = ScopeHelper.GetResoureScopeInfo(model, diagnosticWriter); DeployTimeConstantVisitor.ValidateDeployTimeConstants(model, diagnosticWriter); diagnosticWriter.WriteMultiple(DetectDuplicateNames(model, resourceScopeData, moduleScopeData)); return(new EmitLimitationInfo(diagnosticWriter.GetDiagnostics(), moduleScopeData, resourceScopeData)); }
public static EmitLimitationInfo Calculate(SemanticModel model) { var diagnosticWriter = ToListDiagnosticWriter.Create(); var moduleScopeData = ScopeHelper.GetModuleScopeInfo(model, diagnosticWriter); var resourceScopeData = ScopeHelper.GetResoureScopeInfo(model, diagnosticWriter); DeployTimeConstantValidator.Validate(model, diagnosticWriter); ForSyntaxValidatorVisitor.Validate(model, diagnosticWriter); FunctionPlacementValidatorVisitor.Validate(model, diagnosticWriter); DetectDuplicateNames(model, diagnosticWriter, resourceScopeData, moduleScopeData); DetectIncorrectlyFormattedNames(model, diagnosticWriter); DetectUnexpectedResourceLoopInvariantProperties(model, diagnosticWriter); DetectUnexpectedModuleLoopInvariantProperties(model, diagnosticWriter); DetectUnsupportedModuleParameterAssignments(model, diagnosticWriter); return(new EmitLimitationInfo(diagnosticWriter.GetDiagnostics(), moduleScopeData, resourceScopeData)); }