/// <summary> /// Gets all the semantic diagnostics unsorted. Does not include parser and lexer diagnostics. /// </summary> /// <returns></returns> public IReadOnlyList <Diagnostic> GetSemanticDiagnostics() { var diagnosticWriter = ToListDiagnosticWriter.Create(); var visitor = new SemanticDiagnosticVisitor(diagnosticWriter); visitor.Visit(this.Root); var typeValidationDiagnostics = TypeManager.GetAllDiagnostics(); diagnosticWriter.WriteMultiple(typeValidationDiagnostics); diagnosticWriter.WriteMultiple(EmitLimitationInfo.Diagnostics); return(diagnosticWriter.GetDiagnostics()); }
/// <summary> /// Gets all the semantic diagnostics unsorted. Does not include parser and lexer diagnostics. /// </summary> /// <returns></returns> public IReadOnlyList <IDiagnostic> GetSemanticDiagnostics() { var diagnosticWriter = ToListDiagnosticWriter.Create(); var visitor = new SemanticDiagnosticVisitor(diagnosticWriter); visitor.Visit(this.Root); foreach (var missingDeclarationSyntax in this.SourceFile.ProgramSyntax.Children.OfType <MissingDeclarationSyntax>()) { // Trigger type checking manually as missing declarations are not bound to any symbol. this.TypeManager.GetTypeInfo(missingDeclarationSyntax); } var typeValidationDiagnostics = TypeManager.GetAllDiagnostics(); diagnosticWriter.WriteMultiple(typeValidationDiagnostics); diagnosticWriter.WriteMultiple(EmitLimitationInfo.Diagnostics); return(diagnosticWriter.GetDiagnostics()); }