Siegfried Pammer
997b50d26b
Update resolver spec references to current C# standard numbering
...
The resolver comments cited section numbers from the C# 4.0 spec (and a
few from C# 9.0 drafts), which no longer match the published ECMA-334
standard. Renumber them against dotnet/csharpstandard draft-v11; every
reference was checked against the actual section headings. The old
'better conversion from type' subclause (7.5.3.4) no longer exists as
such and its rules live in 12.6.4.5-12.6.4.7, so that comment now says
so instead of pointing at a dead number.
Assisted-by: Claude:claude-fable-5:Claude Code
2 months ago
Siegfried Pammer
1c010a828e
Give dynamic member accesses a symbol for hover tooltips
...
Dynamic member accesses and invocations carried only the member name
(DynamicMemberResolveResult / DynamicInvocationResolveResult), so
GetSymbol returned null and the editor emitted no reference or hover.
Synthesize a member on the target type - a dynamic field for a member
access, a dynamic-returning method for a member invocation - named after
the accessed member and typed from the callsite delegate: each argument
uses its recorded compile-time type when the binder set one (statically
typed or constant arguments), dynamic otherwise, and the declaring type
comes from the receiver's argument info. Route these through GetSymbol;
TextTokenWriter and the hover renderer already turn an IEntity into a
tooltip. The synthesized members have no metadata token, so they render
a signature on hover but are not navigation targets.
Assisted-by: Claude:claude-fable-5:Claude Code
2 months ago
Siegfried Pammer
77d9ee73e9
Fix IDE2000 globally
9 months ago
Siegfried Pammer
396b58031b
Add support for C# 14 first-class span types in the type system.
10 months ago
Siegfried Pammer
b403b7bb3d
Fix #3542 : Invalid explicit cast for implicit conversion to generic struct with interface type constraint
11 months ago
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
1 year ago
Daniel Grunwald
bd9ee28552
Fix #1789 : missing hyperlink for `MethodGroupResolveResult`.
1 year ago
Siegfried Pammer
68ae8ae833
Rename ITypeDefinition.HasExtensionMethods to ITypeDefinition.HasExtensions
1 year ago
Siegfried Pammer
9dde97414a
Rename ResolvedUsingScope to UsingScope
1 year ago
Siegfried Pammer
d2d9281072
Move CanTransformToExtensionMethodCall to CSharpResolver
1 year ago
Siegfried Pammer
6955704172
Updated CSharpConversions according to https://github.com/dotnet/csharpstandard/blob/draft-v9/standard/conversions.md
1 year ago
Daniel Grunwald
235ae52756
Always attempt standard implicit conversions before user-defined conversions.
1 year ago
Siegfried Pammer
18f5b0f2a0
Add minimal support for params collections to Overload Resolution.
1 year ago
Siegfried Pammer
4aa777ccc2
Add IsArrayInterfaceType extension method
1 year ago
Siegfried Pammer
27e4bc578b
ref structs cannot be boxed
1 year ago
Siegfried Pammer
101ddf8783
Add support for constant slices of InlineArrays
1 year ago
Siegfried Pammer
667036c54e
Add support for InlineArrayConversion
1 year ago
Siegfried Pammer
79f7a188b0
Add support for C# 12 inline array expressions
1 year ago
Daniel Grunwald
d4de698465
#3466 : avoid recursion in `CSharpConversions.SelectOperator`
1 year ago
Jeremy Pritts
0261ca3ae8
Fix stack overflow exception in CSharpResolver ( #3471 )
...
* Fix stack overflow exception in CSharpResolver
* lhs and rhs
1 year ago
Siegfried Pammer
2c419f68cf
Fix #3322 : Add missing checks for equality comparison
2 years ago
Siegfried Pammer
e6004e5f26
Handle ReferenceKind.RefReadOnly in a few more cases
2 years ago
Siegfried Pammer
4bf9487ecd
Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind.
2 years ago
Siegfried Pammer
ee160b4e2a
#3075 : Improve performance of CSharpResolver.LookupSimpleNameOrTypeName in cases with a large number of local variables.
3 years ago
Siegfried Pammer
5a3c6e0872
Remove some unused variable management methods in CSharpResolver.
3 years ago
Daniel Grunwald
3c46271a11
Add support for unsigned right shift.
...
Only for user-defined operators so far; builtin right shifts still cast to the appropriate type.
3 years ago
Daniel Grunwald
3f09958922
Fix #2987 : `(nuint)(-3)` is not a compile-time constant.
3 years ago
Siegfried Pammer
bde782e4f5
Fix #2806 : Do not use implicitly typed out variables, if argument and parameter types do not match exactly.
4 years ago
ElektroKill
1447038ce1
Fix #2736
4 years ago
Siegfried Pammer
583f661153
Work on #1204 : Add optimized implementation of HasAttribute and GetAttribute to IEntity.
4 years ago
Siegfried Pammer
702a7da2c3
Fix #2714 : Force inlining of call targets in ctor initializers.
4 years ago
Daniel Grunwald
9bbb944e97
Avoid crashing on invalid certain forms of invalid metadata (found in obfuscated assemblies)
5 years ago
Daniel Grunwald
9a053d5e6c
nullable enable for CSharpOperators.cs
5 years ago
Daniel Grunwald
5fb2f7a22f
#nullable enable for ILAst (except for generated code)
5 years ago
Daniel Grunwald
bbaddf84cc
Fix #2424 : Suppress the string==null special-case within the string class itself.
5 years ago
Daniel Grunwald
c95da67cbe
Fix extension method calls on `this in`.
6 years ago
Daniel Grunwald
3c554b5e6c
Fix overload resolution: overloads with `in` parameters are applicable even if the argument is passed without explicit `in`
6 years ago
Daniel Grunwald
514cf9b03b
Fix #1944 : Add support for implicit conversions with `in` parameters.
6 years ago
Daniel Grunwald
7ebfc5ded5
Fix #2294 : Issues discovered by static analysis.
6 years ago
Daniel Grunwald
5bbd34a53b
Function pointers are invocable.
6 years ago
Daniel Grunwald
a26a25d689
Fix #2158 : Remove PointerType support from CSharpResolver for additions/subtractions.
...
These have special semantics (number of elements in C# vs. number of bytes in IL), and so pointer arithmetic must go through the special HandlePointerArithmetic() code path --> the normal logic in HandleBinaryNumeric must not ever emit pointer arithmetic.
6 years ago
Daniel Grunwald
b8796908f6
Fix some type inference issues with pointer types.
6 years ago
Daniel Grunwald
d13a8bb64d
Support `ldftn` in the context of a function pointer.
6 years ago
Daniel Grunwald
7f915ad035
Add `OutVarResolveResult` to overload resolution (not yet used by CallBuilder)
6 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
6 years ago
Siegfried Pammer
a0d9410f67
Fix build.
6 years ago
Siegfried Pammer
3bc0bf3270
WIP
6 years ago
Siegfried Pammer
eea4b7701c
#2098 : CallBuilder: Fix named argument handling in TI
6 years ago
Daniel Grunwald
dc3dd193c8
Support unary operators on native integers.
6 years ago
Daniel Grunwald
3a4db502bc
Add support for arithmetic using C# 9 native integer types.
6 years ago