* STJ-SG: tolerate ref struct members with JsonIgnore.
* * Skip all ref like members and emit warnings.
* Add detection for collections with ref struct elements.
* Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs
Co-authored-by: David Cantú <dacantu@microsoft.com>
* Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs
Co-authored-by: David Cantú <dacantu@microsoft.com>
---------
Co-authored-by: David Cantú <dacantu@microsoft.com>
* Arm.Sve - Switch from RequiresPreviewFeatures to Experimental
* X86.AvxVnni no longer requires preview features
* X86.X86Base.DivRem no longer requires preview features
* GenericVectorTests no longer requires preview features (generic math)
* Arm.Sve - Switch from RequiresPreviewFeatures to Experimental (fix mono build)
* Arm.Sve - Switch from RequiresPreviewFeatures to Experimental (fix JIT tests)
* Update SYSLIB5001 suppressions to have consistent comments
* Apply [Experimental] to X86Base.DivRem
Allows overriding KnownColor system values with an alternate set, which in the initial iteration is "dark mode" colors. Enables "dark mode" features in Windows Forms.
This is from the approved part of https://github.com/dotnet/winforms/issues/7641 with further naming iteration done offline with API review.
* Mark the new tensor APIs as experimental for .NET 9
* Apply SNTEXP0001 to other internal API
* Suppress SNTEXP0001 in System.Numerics.Tensors.Tests
* Use SYSLIB5001. Central registration of experimental API diagnostic ids.
* Add Experimentals.cs (missed in prior commit)
* Revert SLN changes. Add UrlFormat property to attributes where missing.
* Ensure the net8 tensors tests also don't warn for the experimental API usage
---------
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
* Add support for primary constructors in LoggerMessageGenerator
* Get the primary constructor parameters types from the constructor symbol instead of from the semantic model
* Prioritize fields over primary constructor parameters and ignore shadowed parameters when finding a logger
* Make checking for primary constructors non-conditional on Roslyn version and simplify project setup
* Reintroduce Roslyn 4.8 test project
* Add info-level diagnostic for logger primary constructor parameters that are shadowed by field
* Update list of diagnostics with new logging message generator diagnostic
* Only add non-logger field names to set of shadowed names
* Add comment explaining the use of the set of shadowed names with an example
* Make Thread.VolatileRead and Thread.VolatileWrite obsolete
* Prevent Thread.VolatileRead and Thread.VolatileWrite from being editor browsable.
* Consolidate obsoletion message and add obsolete attributes to reference definition
* Add EditorBrowsableAttribute to reference definition
* Use Roslyn interceptors feature in binder gen
* Fix polymorphic issue and address feedback
* Fix source build issue
* Revert changes to options gen
* Fix
Adds an 'info' level diagnostic if a GeneratedComInterface method returns int, enum, or a type name "HR" or "HResult" to tell the user that the generated code will put the managed return value as an 'out' parameter on the COM definition.
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
* Relax JsonIncludeAttribute to also support private or internal members.
* Relax JsonConstructorAttribute to include internal or private constructors (where applicable).
* Add first pass of the "convert to generated COM interface" analyzer and add tests for the various other analyzers we are going to introduce.
* Get all analyzer-specific components of the "convert" tests passing.
* Implement all interface-attribute-level changes in the code fixer.
* Add bool marshalling insertion logic to the fixer.
* Add support for removing shadowing members from interfaces.
* Rename fixer
* ActiveIssue the new tests
* Implement basic AddGeneratedComClass analyzer/fixer
* Add ComHosting + GeneratedComInterface analyzer implementation.
* Implement the "runtime COM APIs with source-generated COM types" analyzer.
* Factor out a base class from the ConvertToLibraryImportFixer so we can share it with the ComInterfaceGenerator-family of fixers.
* Move more of the ConvertToLibraryImportFixer to use SyntaxGenerator APIs instead of dropping to C#-specific syntax APIs (improves consistency throughout our code fixes)
* Move support for specifying explicit boolean marshalling rules up to the base class.
* Move the code fixes in ComInterfaceGenerator over to using the ConvertToSourceGeneratedInteropFixer base type.
* Remove use of multicasted delegates and use a more traditional "array of delegates" model.
* Do some refactoring to move more into the new fixer base class.
* Remove custom CodeAction-derived types now that we have a record type to represent fixes from the subclasses.
* Make sure we make types and containing types partial
* Fix negative test.
* Add tests for transitive interface inheritance and add iids.
* Change bool parsing for internal parsing and add warning annotation text. Update diagnostics list md.
- Move BinaryFormatter obsoletions to type-level
- Introduce SYSLIB0050 and SYSLIB0051 obsoletion waves
- Remove some dead code
Ref: https://github.com/dotnet/designs/pull/293
* Fix formatting in list-of-diagnostics.md
I noticed the page currently renders with dangling `_` characters. This change cleans up the markdown formatting, changing the redundant `*_` to `_` and ensuring each is paried correctly.
I also improved alignment of the suppression table columns.
* Update docs/project/list-of-diagnostics.md
---------
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Creates an analyzer that warns if the GeneratedComInterfaceAttribute is
used with InterfaceTypeAttribute that has an argument that is not
'InterfaceIsIUnknown'
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
- added `JSImportAttribute requires unsafe code` + unit test
- fixed Diagnostic IDs + reservation
- moved System.Runtime.InteropServices.JavaScript.UnitTests to subfolder