1793 Commits (117bf54327ee771a82b7c06a6318b0934c1a1760)

Author SHA1 Message Date
sonyps5201314 793d4171f2 Support for `struct` types written in non-primary constructor form that contain field initialization statements has been added. This type was previously mentioned in the commit with the message "The logic was temporarily adjusted so that the `StructWithDefaultCtor` type in the unit test could pass the test. In fact, the member initialization statement in its constructor could be moved." 5 months ago
sonyps5201314 13f0ec93db The special rule for `IsPrimaryConstructor` determination is extended: for `record` types, a complete sequence of assignment statements from the constructor parameters to the `BackingFieldOfAutomaticProperty` must exist. 5 months ago
sonyps5201314 dc452836e0 Fix failing unit tests: `InitializerTests` and `ValueTypes`. 5 months ago
sonyps5201314 1a0696e851 Add a special case to the `IsPrimaryConstructor` determination logic: for a `record struct` type, there must be at least one assignment from a constructor parameter to a `BackingFieldOfAutomaticProperty`. 5 months ago
sonyps5201314 ae24166cd4 The primary constructor check is also skipped when a constructor ends with `NOP NOP RET` instructions, to allow some unit tests to pass. 5 months ago
sonyps5201314 2a887cc5fd When a constructor starts with a NOP instruction, the primary constructor check is skipped to allow some unit tests to pass. 5 months ago
sonyps5201314 5672c58bcf Fixed an issue where the `TestRef` type in the example below could not be decompiled correctly after the commit: `Fixed an issue where the logic of moving the initialization statement of class members in the constructor to the class member declaration was incompatible with complex expressions using parameters.` 5 months ago
sonyps5201314 8abe38128e Fixed an issue where [RestClientOptions](https://github.com/restsharp/RestSharp/blob/dev/src/RestSharp/Options/RestClientOptions.cs) could not be decompiled correctly after the commit: `Fixed an issue where the logic of moving the initialization statement of class members in the constructor to the class member declaration was incompatible with complex expressions using parameters.` 5 months ago
sonyps5201314 16c2b8c1a9 The logic was temporarily adjusted so that the `StructWithDefaultCtor` type in the unit test could pass the test. In fact, the member initialization statement in its constructor could be moved. 5 months ago
sonyps5201314 851a1f3af5 Fixed an issue where the logic of moving the initialization statement of class members in the constructor to the class member declaration was incompatible with complex expressions using parameters. 5 months ago
sonyps5201314 439ceef2a2 Fixed an issue where the copy constructor of type `DerivedGeneric` in unit tests was not recognized as compiler-generated code after the commit "`Fixed the issue where the DefaultParameters type in https://github.com/restsharp/RestSharp/blob/dev/src/RestSharp/Parameters/DefaultParameters.cs was incorrectly judged as to whether the primary constructor was used due to incorrect initialization logic of isStruct and isInheritedRecord in the constructor of the RecordDecompiler class.`". 5 months ago
sonyps5201314 461ffe57fe Fixed an issue in unit tests where the `RefFields` type would be decompiled into incorrect code when the return value of the `IsPrimaryConstructor` function was forcibly changed to `false`. 5 months ago
sonyps5201314 fee9db9f9d Fixed an issue where two `PrimaryCtorWithField` types in unit tests could not be decompiled correctly 5 months ago
sonyps5201314 c5fc18c94e Fixed an issue where the `Range` type in "https://github.com/restsharp/RestSharp/blob/dev/src/RestSharp/Polyfills/Range.cs" could not be decompiled correctly after adjusting the judgment logic of the primary constructor. 5 months ago
sonyps5201314 27f5275718 Fixed unsupport for types containing multiple regular constructors, none of which chain calls to the primary constructor. 5 months ago
sonyps5201314 ae86ddf3c8 Fixed the issue that the `Index` type in “https://github.com/restsharp/RestSharp/blob/dev/src/RestSharp/Polyfills/Index.cs” would be decompiled incorrectly after the commit of “Make `ILSpy` support `struct` and `record struct` types declared with a primary constructor and containing other constructors.”. 5 months ago
sonyps5201314 cae466e5b0 Make `ILSpy` support `struct` and `record struct` types declared with a primary constructor and containing other constructors. 5 months ago
sonyps5201314 89c7e59176 Fixed an issue where the `record struct` type declared with a primary constructor could not be decompiled correctly. The reason was that `HandleInstanceFieldInitializers` did not support the `struct` type, but `DetectPrimaryConstructor` did not exclude it in advance. 5 months ago
sonyps5201314 9a4e49a7d4 Fixed an issue where the "CopilotQueriedScopeMention" type in "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Microsoft.VisualStudio.Copilot.Contracts\Microsoft.VisualStudio.Copilot.dll" could not be decompiled correctly after expanding the judgment logic of IsPrimaryConstructor. 5 months ago
sonyps5201314 554ec92e73 Fix the issue where parameters in the base class constructor call are not passed correctly for inherited classes declared using the primary constructor form (e.g., the `DeserializationException` type in RestSharp), and also fix the subsequent issue where an extra parenthesis '()' is output if the base class is an interface (e.g., the `XmlRestSerializer` type in RestSharp). 6 months ago
sonyps5201314 828fb52390 `IsBaseCtorCall` no longer checks the number of parameters. Otherwise, it would cause the translation of the `DeserializationException` type in `https://github.com/restsharp/RestSharp/blob/dev/src/RestSharp/Serializers/DeseralizationException.cs` to fail, as it is a primary constructor declaration that calls a base constructor with two arguments. 6 months ago
sonyps5201314 8d1cfee963 The internal judgment logic of IsPrimaryConstructor should exclude the copy constructor first, otherwise it will be judged incorrectly whether the NamedParameter type in https://github.com/restsharp/RestSharp/blob/dev/src/RestSharp/Parameters/Parameter.cs uses the primary constructor. 6 months ago
sonyps5201314 10ce064833 Fixed the issue where the DefaultParameters type in https://github.com/restsharp/RestSharp/blob/dev/src/RestSharp/Parameters/DefaultParameters.cs was incorrectly judged as to whether the primary constructor was used due to incorrect initialization logic of isStruct and isInheritedRecord in the constructor of the RecordDecompiler class. 6 months ago
sonyps5201314 aae1a28895 The IsPrimaryConstructor function is reimplemented based on some of dotPeek's judgment rules and the definition and characteristics of the primary constructor. However, it is found that dotPeek's judgment logic is also problematic. For example, it does not support the following scenario: ``` class WebPair(string name, string? value, ref readonly object encode) { public string Name { get; } = name; public string? Value { get; } = value; string? WebValue { get; } = encode is null ? "111" : value; string? WebValue2 { get; } = encode.ToString(); } ``` 6 months ago
sonyps5201314 e8f32ec592 Fixed the issue where IsPrimaryConstructor's judgment was too conservative, which resulted in the inability to generate correct code in many scenarios. 6 months ago
Siegfried Pammer 126e870a5a Fix #3577: Properly infer the switch governing type and preserve conversions 6 months ago
Siegfried Pammer c075f7b9c8 Fix out var for expressions appearing in a lambda and not in a statement. 6 months ago
Siegfried Pammer d11c40719d #3569: Don't move out variable declarations out of lambdas. 6 months ago
Siegfried Pammer d736b02e2b Fix #3480: assert at ExpressionBuilder.BuildArrayInitializerExpression with properties that are not C# indexers, but parameterized properties. 6 months ago
Siegfried Pammer b403b7bb3d Fix #3542: Invalid explicit cast for implicit conversion to generic struct with interface type constraint 6 months ago
ds5678 c54318173b Fix lower case type name conflicting with variable name 6 months ago
Siegfried Pammer 732f285c41 Rename KnownAttributes.RequiredAttribute to KnownAttributes.Required 7 months ago
Siegfried Pammer e34db06a67 Fix #3543: Missing parentheses around field assignment expression in list initializers 7 months ago
Siegfried Pammer 48ff85178d #3545: Properties must have a getter for covariant returns to be applicable. 7 months ago
Siegfried Pammer 3442fad4a0 Fix #3545: Covariant return not detected for abstract override property 7 months ago
Peter Crabtree e1e16b64f5 dev: Strip BOM mark from text files 7 months ago
Daniel Grunwald bd9ee28552 Fix #1789: missing hyperlink for `MethodGroupResolveResult`. 8 months ago
Daniel Grunwald ec58d57875 #3465: Fix bugs in `comp.o` handling. 8 months ago
Daniel Grunwald 89083eaf48 Fix #3344: Add support for the `ckfinite` opcode. 8 months ago
Daniel Grunwald dd4bf7d8a4 Fix #3518 by replacing `FixLoneIsInst` with an inlining restriction. 8 months ago
Jan Kučera 9d11f523b1 Always move initializer decompilation setting 8 months ago
Siegfried Pammer 6c00c138eb Fix #3465: Translate comp.o(a op b) if op not in (==, !=) into Unsafe.As<object, UIntPtr>(ref a) op Unsafe.As<object, UIntPtr>(ref b) 8 months ago
Maximilian Schmöcker 43bfaba7e0
Add ExpandParamsArguments DecompilerSettings 8 months ago
Maximilian Schmöcker 850ffe593d
Fix methods with mandatory arguments ignore disabled OptionalArguments setting 8 months ago
Siegfried Pammer f8dcd95b31 Add support for extensions in CSharpDecompiler 8 months ago
Siegfried Pammer 9157122462 Add ExtensionDeclaration syntax node 8 months ago
Siegfried Pammer 29bd78a9c9 Add DecompilerSettings.ExtensionMembers and Language version 14 8 months ago
Siegfried Pammer 68ae8ae833 Rename ITypeDefinition.HasExtensionMethods to ITypeDefinition.HasExtensions 8 months ago
Siegfried Pammer 7ea2c8f32f Remove dead code 8 months ago
Siegfried Pammer c642678f7f Remove ToTypeReference: Implement ParseReflectionName with SRM TypeName. 8 months ago