- 18 6月, 2020 1 次提交
-
-
由 mizuniga 提交于
-
- 17 6月, 2020 1 次提交
-
-
由 Fredric Silberberg 提交于
-
- 08 6月, 2020 1 次提交
-
-
由 Andrew Hall 提交于
Add new information for portable pdbs to help reconstruct the same compilation if source is available. Added spec file with detailed description of design. Implements #41395
-
- 03 6月, 2020 1 次提交
-
-
由 Jonathon Marolf 提交于
I am just a simple developer trying to send these cancellation tokens downstream where they belong
-
- 28 5月, 2020 1 次提交
-
-
由 Fredric Silberberg 提交于
-
- 23 5月, 2020 1 次提交
-
-
由 Fredric Silberberg 提交于
* Significantly expanded testing. * Reworded exception messages. * Simplified handling of getting semantic information in the CSharpSemanticModel. * Added comments as appropriate. * Added linux support for running the IOperation test hook from cli.
-
- 21 5月, 2020 1 次提交
-
-
由 Fredric Silberberg 提交于
-
- 15 5月, 2020 1 次提交
-
-
由 Fredric Silberberg 提交于
-
- 23 4月, 2020 1 次提交
-
-
由 Manish Vasani 提交于
-
- 22 4月, 2020 1 次提交
-
-
由 Manish Vasani 提交于
Closes #42166 This PR is aimed towards improving the build performance in presence of analyzers that report Info (Suggestion) and/or Hidden diagnostics. Hidden diagnostics are never reported in build and Info diagnostics are only officially supported in presence of /errorlog, we will retain this support. The command line compilers do report Info diagnostics on command line today, but these are filtered away by MSBuild and are effectively never visible to users. This makes this a non-breaking scenario in .NET core build environment and an extreme corner case breaking change on desktop (clients relying on info diagnostics from raw csc/vbc output). Note that such clients would still have a workaround to get the prior behavior by enabling /errorlog. This optimization should improve build performance when users install the new IDE CodeStyle NuGet package (mostly hidden diagnostics) and the upcoming .NET5 analyzers package (has large number of info/hidden diagnostics).
-
- 18 3月, 2020 2 次提交
-
-
由 Sam Harwell 提交于
-
由 Sam Harwell 提交于
-
- 14 3月, 2020 1 次提交
-
-
由 Julien Couvreur 提交于
-
- 11 3月, 2020 1 次提交
-
-
由 Julien Couvreur 提交于
-
- 10 3月, 2020 1 次提交
-
-
由 Charles Stoner 提交于
-
- 03 3月, 2020 1 次提交
-
-
由 Charles Stoner 提交于
-
- 15 2月, 2020 1 次提交
-
-
由 Julien Couvreur 提交于
-
- 08 2月, 2020 1 次提交
-
-
由 Jared Parsons 提交于
-
- 06 2月, 2020 1 次提交
-
-
由 Fredric Silberberg 提交于
-
- 23 1月, 2020 1 次提交
-
-
由 Jonathon Marolf 提交于
-
- 09 1月, 2020 1 次提交
-
-
由 Julien Couvreur 提交于
-
- 04 1月, 2020 1 次提交
-
-
由 Jared Parsons 提交于
The suppression in `SyntaxList` is necessary in order to meet the API contract. Filed an issue for follow up https://github.com/dotnet/roslyn/issues/40733
-
- 02 1月, 2020 3 次提交
-
-
由 Jared Parsons 提交于
related #40505
-
由 Jared Parsons 提交于
-
由 Jared Parsons 提交于
-
- 02 11月, 2019 1 次提交
-
-
由 AlekseyTs 提交于
This change also separates implementation of ISymbol interfaces from internal symbols in C# compiler.
-
- 15 10月, 2019 1 次提交
-
-
由 Ivan Basov 提交于
-
- 24 8月, 2019 1 次提交
-
-
由 Julien Couvreur 提交于
-
- 20 8月, 2019 1 次提交
-
-
由 Manish Vasani 提交于
Command line compilation is fixed to avoid writing any files to disk when compilation fails. The Emit API is changed to not write the PE file when compilation fails, but the behavior where the XML doc comments are still written is preserved. Fixes #37779
-
- 30 7月, 2019 1 次提交
-
-
由 Cyrus Najmabadi 提交于
-
- 26 7月, 2019 1 次提交
-
-
由 Fredric Silberberg 提交于
Merge NullableAnnotation.NotApplicable and Disabled to None, and rename NullableFlowState.NotApplicable to None for consistency.
-
- 16 7月, 2019 1 次提交
-
-
由 Fred Kleuver 提交于
-
- 12 7月, 2019 1 次提交
-
-
由 Charles Stoner 提交于
-
- 21 6月, 2019 1 次提交
-
-
由 Manish Vasani 提交于
-
- 20 6月, 2019 1 次提交
-
-
由 Manish Vasani 提交于
-
- 19 6月, 2019 1 次提交
-
-
由 Manish Vasani 提交于
Follow up to #36067 Fixes #36215
-
- 07 6月, 2019 1 次提交
-
-
由 Manish Vasani 提交于
-
- 05 6月, 2019 1 次提交
-
-
由 Manish Vasani 提交于
-
- 31 5月, 2019 1 次提交
-
-
由 Manish Vasani 提交于
Add new analyzer API (DiagnosticSuppressor) to allow programmatic suppression of analyzer and/or compiler non-error diagnostics Fixes #20242 and #30172 Detailed design proposal [here](https://gist.github.com/mavasani/fcac17a9581b5c54cef8a689eeec954a). Added public APIs with documentation comments: ```cs namespace Microsoft.CodeAnalysis.Diagnostics { /// <summary> /// The base type for diagnostic suppressors that can programmatically suppress analyzer and/or compiler non-error diagnostics. /// </summary> public abstract class DiagnosticSuppressor : DiagnosticAnalyzer { // Disallow suppressors from reporting diagnostics or registering analysis actions. public sealed override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray<DiagnosticDescriptor>.Empty; public sealed override void Initialize(AnalysisContext context) { } /// <summary> /// Returns a set of descriptors for the suppressions that this suppressor is capable of producing. /// </summary> public abstract ImmutableArray<SuppressionDescriptor> SupportedSuppressions { get; } /// <summary> /// Suppress analyzer and/or compiler non-error diagnostics reported for the compilation. /// This may be a subset of the full set of reported diagnostics, as an optimization for /// supporting incremental and partial analysis scenarios. /// A diagnostic is considered suppressible by a DiagnosticSuppressor if *all* of the following conditions are met: /// 1. Diagnostic is not already suppressed in source via pragma/suppress message attribute. /// 2. Diagnostic's <see cref="Diagnostic.DefaultSeverity"/> is not <see cref="DiagnosticSeverity.Error"/>. /// 3. Diagnostic is not tagged with <see cref="WellKnownDiagnosticTags.NotConfigurable"/> custom tag. /// </summary> public abstract void ReportSuppressions(SuppressionAnalysisContext context); } /// <summary> /// Provides a description about a programmatic suppression of a <see cref="Diagnostic"/> by a <see cref="DiagnosticSuppressor"/>. /// </summary> public sealed class SuppressionDescriptor : IEquatable<SuppressionDescriptor> { /// <summary> /// An unique identifier for the suppression. /// </summary> public string Id { get; } /// <summary> /// Identifier of the suppressed diagnostic, i.e. <see cref="Diagnostic.Id"/>. /// </summary> public string SuppressedDiagnosticId { get; } /// <summary> /// A localizable description about the suppression. /// </summary> public LocalizableString Description { get; } } /// <summary> /// Context for suppressing analyzer and/or compiler non-error diagnostics reported for the compilation. /// </summary> public struct SuppressionAnalysisContext { /// <summary> /// Suppressible analyzer and/or compiler non-error diagnostics reported for the compilation. /// This may be a subset of the full set of reported diagnostics, as an optimization for /// supporting incremental and partial analysis scenarios. /// A diagnostic is considered suppressible by a DiagnosticSuppressor if *all* of the following conditions are met: /// 1. Diagnostic is not already suppressed in source via pragma/suppress message attribute. /// 2. Diagnostic's <see cref="Diagnostic.DefaultSeverity"/> is not <see cref="DiagnosticSeverity.Error"/>. /// 3. Diagnostic is not tagged with <see cref="WellKnownDiagnosticTags.NotConfigurable"/> custom tag. /// </summary> public ImmutableArray<Diagnostic> ReportedDiagnostics { get; } /// <summary> /// Report a <see cref="Suppression"/> for a reported diagnostic. /// </summary> public void ReportSuppression(Suppression suppression); /// <summary> /// Gets a <see cref="SemanticModel"/> for the given <see cref="SyntaxTree"/>, which is shared across all analyzers. /// </summary> public SemanticModel GetSemanticModel(SyntaxTree syntaxTree); /// <summary> /// <see cref="CodeAnalysis.Compilation"/> for the context. /// </summary> public Compilation Compilation { get; } /// <summary> /// Options specified for the analysis. /// </summary> public AnalyzerOptions Options { get; } /// <summary> /// Token to check for requested cancellation of the analysis. /// </summary> public CancellationToken CancellationToken { get; } } /// <summary> /// Programmatic suppression of a <see cref="Diagnostic"/> by a <see cref="DiagnosticSuppressor"/>. /// </summary> public struct Suppression { /// <summary> /// Creates a suppression of a <see cref="Diagnostic"/> with the given <see cref="SuppressionDescriptor"/>. /// </summary> /// <param name="descriptor"> /// Descriptor for the suppression, which must be from <see cref="DiagnosticSuppressor.SupportedSuppressions"/> /// for the <see cref="DiagnosticSuppressor"/> creating this suppression. /// </param> /// <param name="suppressedDiagnostic"> /// <see cref="Diagnostic"/> to be suppressed, which must be from <see cref="SuppressionAnalysisContext.ReportedDiagnostics"/> /// for the suppression context in which this suppression is being created.</param> public static Suppression Create(SuppressionDescriptor descriptor, Diagnostic suppressedDiagnostic); /// <summary> /// Descriptor for this suppression. /// </summary> public SuppressionDescriptor Descriptor { get; } /// <summary> /// Diagnostic suppressed by this suppression. /// </summary> public Diagnostic SuppressedDiagnostic { get; } } } ``` For batch compilation, suppressors always run after all the analyzer diagnostics have been computed. For IDE partial/incremental analysis scenario, we may run the suppressors with partial diagnostics. Suppressed diagnostics from diagnostic suppressors are equivalent to source suppressed diagnostics: they show up in the error list with "Suppression State" column as "Suppressed" and are also output to errorlog as suppressed diagnostics.
-
- 17 4月, 2019 1 次提交
-
-
由 Fredric Silberberg 提交于
-