/// <summary> /// Initializes a new instance of the <see cref="CompilationContext"/> class. /// </summary> public CompilationContext(Workspace workspace, Document currentDocument) { Workspace = workspace; CurrentDocument = currentDocument; DocumentEditor = DocumentEditor.CreateAsync(currentDocument).Result; }
private Task<Document> MakeSealed(DocumentEditor editor, SyntaxNode declaration, CancellationToken ct) { DeclarationModifiers modifiers = editor.Generator.GetModifiers(declaration); editor.SetModifiers(declaration, modifiers + DeclarationModifiers.Sealed); return Task.FromResult(editor.GetChangedDocument()); }
private static void IncreaseVisibility(DocumentEditor editor, SyntaxNode declaration, Accessibility targetAccessibility) { if (declaration == null) return; ISymbol symbol = editor.SemanticModel.GetDeclaredSymbol(declaration); var property = (symbol as IMethodSymbol)?.AssociatedSymbol as IPropertySymbol; if (property != null && IsMoreRestrictive(property.DeclaredAccessibility, targetAccessibility)) { // Can't explicitly set an accessor to a visibility greater than or equal to that of the containing property editor.SetAccessibility(declaration, Accessibility.NotApplicable); } else { editor.SetAccessibility(declaration, targetAccessibility); } }