Comments (4)
IBitwiseOperators<byte,byte,byte>
are implemented explicitly for byte
, those methods are not public: https://source.dot.net/#System.Private.CoreLib/src/libraries/System.Private.CoreLib/src/System/Byte.cs,422
If you want to call into IBitwiseOperators<byte,byte,byte>.op_And
, you need to go through type parameter:
T And<T>(T l, T r) where T : IBitwiseOperators<T, T, T> => l & r;
byte a = 1, b = 2;
byte c = And(a, b);
Note that exposing those methods public on byte
is considered as a breaking change, as existing code expect it to be casted to int
.
from roslyn.
May be related to #42816
from roslyn.
I suppose that makes sense. The default behaviour is just a bit counter-intuitive imo. I'm assuming that it stems from the CIL's internal representation of integers as being at least 32 bits?
I'm not expecting anything to change, given the backwards compatibility requirements, so unless you want to reply then feel free to close this. (That said, I'm curious why the default integer promotion rules wouldn't be adequate if the methods were to be made public, but I'm sure there's plenty of edge cases I'm not considering.)
from roslyn.
Consider:
Foo(b1 & b2)
void Foo(byte b) { ... }
void Foo(int i) { ... }
This can't change meaning.
from roslyn.
Related Issues (20)
- Add `IMethodSymbol Deconstruct` to `IDeconstructionAssignmentOperation`
- IDE0130 warning "Namespace 'Foo.Bar' does not match folder structure, expected 'Foo_xyz_wpftmp.Bar'" when EnforceCodeStyleInBuild is enabled
- Bad performance in CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer with System.Text.Json source generator HOT 12
- [Automated] PRs inserted in VS build main-35214.134
- Use interpolated string handler for string concat HOT 3
- Using SuppressMessage on a const declaration causes Diagnostic analyzer runner interal error
- `CSharpWrappingCodeRefactoringProvider` encountered an error and has been disabled
- `CSharpMergeNestedIfStatementsCodeRefactoringProvider` encountered an error and has been disabled
- `CSharpMergeConsecutiveIfStatementsCodeRefactoringProvider` encountered an error and has been disabled
- Usage of Activator.CreateInstance won't show in references on the constructor, so there is misleading info!
- Automatic exception xml tag when using static class such as ArgumentNullException HOT 2
- Allow the Visual Studio "Sync Namespaces" tool to work at the folder level, not just Project and Solution.
- Refactoring suggestion -> Move to new file needs a confirmation dialog
- Reenable BC30645ERR_InvalidOptionalParameterUsage1b
- [Automated] PRs inserted in VS build feature.debugger.main-35215.202
- Inconsistent report of CS8156 when using generically constrained interfaces and [UnscopedRef]
- Sourcelink does not debug merged partial classes
- Advanced analysis options are unreliable, confusing and poorly documented
- EditorConfig "modern" vs legacy priority revert related documentation updates
- CS8344 error even with C# 13 (ref in iterators/async) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from roslyn.