* Add ValidateMemberAttribute, analyzer and test
* Use attribute on DirtyFields methods
* Defer member lookup
* Additional test case
* Add support for collection types
* Poke tests
* Revert "Add support for collection types"
This reverts commit 2b8f5534bd.
* break, not continue
* Cheaper attribute check with AttributeHelper
* Clean up unused helper method
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
This allows us to make it obsolete to *inherit* from a class, and only that.
Intended so people stop inheriting UI controls for no good reason.
Fixes#5856
* New "must call base" analyzer.
This enforces that you actually call base when overriding stuff. This is intended for base methods like entity system's, where server/client systems overriding shared ones SHOULD call Initialize() and such.
* Add MustCallBase to entity system methods
* Enable roslyn extension tests in CI
* I'll be real I kinda just hoped that last one would work. dotnet test's --help documentation is useless garbage so I couldn't tell if that was supported or not. Guess not.
* Actually fix the Roslyn tests.
As far as I can tell, Roslyn tests haven't worked since #2976.
The tests used a pretty awful technique of linking the test code against the analyzer, so that the analyzer's copy of the relevant attributes got included into the test. This then broke when the namespace got changed by the linked PR.
Now the tests get an EmbeddedResource for the necessary test files compiled instead.
Also applied this to DependencyAssignAnalyzerTest because why not.
* Source gen reorganizations + component unpause generator.
This commit (and subsequent commits) aims to clean up our Roslyn plugin (source gens + analyzers) stack to more sanely re-use common code
I also built a new source-gen that automatically generates unpausing implementations for components, incrementing attributed TimeSpan field when unpaused.
* Fix warnings in all Roslyn projects
* dog what am i doing
* finish gen source part from class symbol
* we are dangerously close to things happening
* generation fixes
* oh? on god?
* stop autogenerating the attribute for no reason + diagnostics
* testing diagnostics
* proper type name handling + clonedata bool
* thank you material storage for making me realize this
* forgot to commit
* p
* fixes for afterautohandlestate
* make it work with access
* Add Friend classes to C# with the help of Analyzers and Attributes.
* Revert to netstandard2.0
* Use LINQ instead of ^1 for array
* Address review.
Oops, forgot to push.