* 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.
* Don't enable ILLink analyzers for unsupported TFMs
This adds a condition to EnableSingleFileAnalyzer to prevent it from requiring
the ILLink pack that is only supported on netcoreapp3.0 and above.
Adding a condition on the TFM requires moving the setting into a targets file.
Also consolidates more of the analyzer logic into this file.
---------
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
- Move BinaryFormatter obsoletions to type-level
- Introduce SYSLIB0050 and SYSLIB0051 obsoletion waves
- Remove some dead code
Ref: https://github.com/dotnet/designs/pull/293
* Glossary: Change source for SoS to Wayback Machine link
The page seems to have disappeared in the currently archived version of Jason Zander's blog at https://learn.microsoft.com/en-us/archive/blogs/jasonz/ - so replace it with a Wayback Machine link to an archived version.
* Link to official documentation for SOS instead and mention origin of name in the description.
* 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>
* Add _generated.h to src\coreclr\jit\ICorJitInfo_API_names.h
* Add _generated.h to src\coreclr\jit\ICorJitInfo_API_wrapper.hpp
* renamed src\coreclr\tools\Common\JitInterface\CorInfoBase.cs
* fix ThunkGenerator (it used to insert two empty lines)
* CorInfoBase_generated.cs -> CorInfoImpl_generated.cs
* Drop _API_ part
* Rename icorjitinfo.cpp
* jitinterface.h -> _generated
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
- added `JSImportAttribute requires unsafe code` + unit test
- fixed Diagnostic IDs + reservation
- moved System.Runtime.InteropServices.JavaScript.UnitTests to subfolder