-
Notifications
You must be signed in to change notification settings - Fork 731
Closed
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationenhancementup-for-grabs
Description
We do have an impressive amount of type assertions.
I've tried to lookup the .net type hierarchy and keywords to see what we might be missing.
See the bottom for types and keywords.
Here's a rough sketch of what such APIs could look like, but please notice that I haven't checked if they are:
- even possible
- desirable.
- ClassAssertions : TypeAssertions
- ClassSelector : TypeSelector
- EventInfoAssertions : MemberInfoAssertions<EventInfo, EventInfoAssertions>
-
FieldInfoAssertions : MemberInfoAssertions<FieldInfo, FieldInfoAssertions>-
[Not]BeVolatile -
[Not]BeConst
-
-
FieldInfoSelector-
ThatAre[Not]Volatile -
ThatAre[Not]Const
-
- InterfaceAssertions : TypeAssertions
- InterfaceSelector : TypeSelector
- MemberInfoAssertions
- [Not]HaveAccessModifier
-
[Not]BeOverridable - [Not]BeStatic
- [Not]BeAbstract
- MethodInfoSelector
- ThatAre[Not]Async Adding
ThatAreAsync()andThatAreNotAsync()toMethodInfoSelector#1725 -
ThatAre[Not]Overridable - ThatAre[Not]Virtual Adds ThatAre(Not)Virtual to MethodInfoSelector #1744
- ThatAre[Not]Static Adds ThatAreStatic and ThatAreNotStatic to MethodInfoSelector #1740
- ThatAre[Not]Abstract Add
ThatAre[Not]AbstracttoMethodInfoSelector#2060 - ThatAre[Not]Sealed
- ThatAre[Not]Async Adding
- PropertyInfoSelector
- NotBeWritable PropertyInfoSelectorAssertions.NotBeWritable? #1256
-
ThatAre[Not]Overridable - ThatAre[Not]Virtual Add
ThatAre[Not]Abstract,ThatAre[Not]StaticandThatAre[Not]VirtualtoPropertyInfoSelector#2054 - ThatAre[Not]Static Add
ThatAre[Not]Abstract,ThatAre[Not]StaticandThatAre[Not]VirtualtoPropertyInfoSelector#2054 - ThatAre[Not]Abstract Add
ThatAre[Not]Abstract,ThatAre[Not]StaticandThatAre[Not]VirtualtoPropertyInfoSelector#2054 - ThatAre[Not]Sealed
-
StructAssertions : TypeAssertions -
StructSelector : TypeSelector - TypeAssertions
- TypeSelector
- ThatAre[Not]Virtual
- ThatAre[Not]Static Add several new methods to Types and Methods Assertions #1306
- ThatAre[Not]Abstract Add
ThatAre[Not]AbstracttoTypeSelector#2058 - ThatAre[Not]Sealed Add
ThatAre[Not]SealedtoTypeSelector.cs#2059 - ThatAre[Not]Classes Add several new methods to Types and Methods Assertions #1306
- ThatAre[Not]Structs Add
ThatAre[Not]StructsinTypeSelector.cs#2056 - ThatAre[Not]Interfaces Add
ThatAre[Not]InterfacestoTypeSelector.cs#2057
- TypeSelectorAssertions
References:
Type hierachy:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/members
- Members
- Fields
- Constants
- Properties
- Methods
- Events
- Operators
- Indexers
- Constructors
- Finalizers
- Classes
- Structs
- Interfaces
- StaticConstructors
Keywords and which type they apply to:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
- member, type
- access modifiers:
- private
- protected
- public
- internal
- protected Internal
- access modifiers:
- classes, fields, methods, properties, operators, events, and constructors
- static
- method, property, indexer, or event
- virtual
- override
- member
- new
- type
- abstract
- unsafe
- method
- extern
- async
- class
- sealed
- class, struct, interface, method
- partial
- field
- volatile
- readonly
- const
rubenrorije
Metadata
Metadata
Assignees
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationenhancementup-for-grabs