1. 13 8月, 2020 1 次提交
  2. 12 8月, 2020 1 次提交
  3. 05 8月, 2020 1 次提交
  4. 04 8月, 2020 3 次提交
  5. 01 8月, 2020 1 次提交
  6. 31 7月, 2020 1 次提交
  7. 30 7月, 2020 1 次提交
  8. 29 7月, 2020 2 次提交
  9. 28 7月, 2020 1 次提交
  10. 22 7月, 2020 1 次提交
  11. 21 7月, 2020 1 次提交
  12. 20 7月, 2020 1 次提交
  13. 17 7月, 2020 1 次提交
  14. 15 7月, 2020 1 次提交
  15. 14 7月, 2020 1 次提交
  16. 11 7月, 2020 1 次提交
  17. 10 7月, 2020 1 次提交
    • A
      Align addition of a synthesized EqualityContract in records with the latest design. (#45831) · 32da3079
      AlekseyTs 提交于
      Related to #45296.
      
      From specification:
      If the record is derived from `object`, the record type includes a synthesized readonly property equivalent to a property declared as follows:
      ```C#
      protected Type EqualityContract { get; };
      ```
      The property is `virtual` unless the record type is `sealed`.
      The property can be declared explicitly. It is an error if the explicit declaration does not match the expected signature or accessibility, or if the explicit declaration doesn't allow overiding it in a derived type and the record type is not `sealed`.
      
      If the record type is derived from a base record type `Base`, the record type includes a synthesized readonly property equivalent to a property declared as follows:
      ```C#
      protected override Type EqualityContract { get; };
      ```
      
      The property can be declared explicitly. It is an error if the explicit declaration does not match the expected signature or accessibility, or if the explicit declaration doesn't allow overiding it in a derived type and the record type is not `sealed`. It is an error if either synthesized, or explicitly declared property doesn't override a property with this signature in the record type `Base` (for example, if the property is missing in the `Base`, or sealed, or not virtual, etc.).
      The synthesized property returns `typeof(R)` where `R` is the record type.
      32da3079
  18. 09 7月, 2020 1 次提交
    • A
      Align addition of a synthesized record.Equals(record? other) in records with... · 00f7f0c6
      AlekseyTs 提交于
      Align addition of a synthesized record.Equals(record? other) in records with the latest design. (#45647)
      
      Related to #45296.
      
      From specification:
      includes a synthesized strongly-typed overload of `Equals(R? other)` where `R` is the record type.
      The method is `public`, and the method is `virtual` unless the record type is `sealed`.
      The method can be declared explicitly. It is an error if the explicit declaration does not match the expected signature or accessibility, or the explicit declaration doesn't allow overriding it in a derived type and the record type is not `sealed`.
      ```C#
      public virtual bool Equals(R? other);
      ```
      00f7f0c6
  19. 07 7月, 2020 1 次提交
    • N
      Covariant returns part 4 (#44025) · c319376d
      Neal Gafter 提交于
      * Implement and test retargeting symbols for covariant returns.
      * A PE symbol with multiple methodimpl entries is ignored as an explicit override for language covariant returns.
      * Test binary compatibility scenarios with overrides inserted into the hierarchy.
      * Test a scenario with duplicate requirements for a methodimpl entry
      * A methodimpl may be required anytime the runtime and language disagree about the overridden method.
        (As a side-effect, this fixes a number of previously-believed-unfixable bugs regarding the mismatch between C# and CIL)
      * Emit a call to the least derived override in the hierarchy with the correct return type.
      * Test covariant returns in expression trees.
      * Test capturing a covariant method in a delegate creation.
      * Test consumption and override of covariantly overridden methods, properties, and indexers from VB.
      * Require that the target runtime supports covariant returns when the feature is used.
      * Adjust tests for new special member.
      * Test compile-time behavior of nullable variance in covariant returns.
      * Produce RequireMethodImplToRemainInEffectAttribute on covariant overrides.
      * Eliminate CS1957 by generating correct code.
        Fixes #44067
      * Cache `PEMethodSymbol.ExplicitlyOverriddenClassMethod`
        Closes #44068
      * Move some PROTOTYPE comments to issues.
        Relates to #44206, #44207, #44208, #44209
      * Remove virtual `ExplicitlyOverriddenClassMethod` from MethodSymbol.
        Instead provide (and test) leaf APIs to be used directly by `OverriddenOrHiddenMembersHelpers`.
      * Enhance the covariant return tests per PR review.
      * Rename `RequireMethodImplToRemainInEffectAttribute` to `PreserveBaseOverridesAttribute` per API review
      * Document breaking change
      * Changes per review comments
        - Revert behavior of PEMethodSymbol.IsOverride (true even if we cannot report a unique overridden method)
        - Add runtime test for behavior of methodimpl in ambiguous scenarios (reported 
          https://github.com/dotnet/runtime/issues/38119)
      * Modify how overrides are computed for PE symbols as requested in code review.
      * Condition WRN_MultipleRuntimeOverrideMatches on whether runtime has working methodimpl
        Relates to https://github.com/dotnet/runtime/issues/38119
        Fixes https://github.com/dotnet/roslyn/issues/45453
      * Test `SourceMethodSymbol.RequiresExplicitOverride` in ambiguous scenarios.
      * Preserve historical test for methodimpl generation as a fallback.
      c319376d
  20. 03 7月, 2020 1 次提交
    • A
      Align addition of a synthesized override of Base.Equals(Base? other) in... · 79f298bc
      AlekseyTs 提交于
      Align addition of a synthesized override of Base.Equals(Base? other) in records with the latest design. (#45601)
      
      Related to #45296.
      
      From specification:
      If the record type is derived from a base record type Base, the record type includes a synthesized override of the strongly-typed Equals(Base other). The synthesized override is sealed. It is an error if the override is declared explicitly. The synthesized override returns Equals((object?)other).
      
      This change also adjusts code-gen to properly compare EqualityContracts.
      79f298bc
  21. 02 7月, 2020 2 次提交
  22. 01 7月, 2020 1 次提交
  23. 30 6月, 2020 1 次提交
    • A
      Align addition of a synthesized override of object.Equals(object? obj) in... · 35370ebd
      AlekseyTs 提交于
      Align addition of a synthesized override of object.Equals(object? obj) in records with the latest design. (#45475)
      
      * Align addition of a synthesized override of object.Equals(object? obj) in records with the latest design.
      
      Related to #45296.
      
      From specification:
      The record type includes a synthesized override of object.Equals(object? obj). It is an error if the override is declared explicitly. The synthesized override returns Equals(other as R) where R is the record type.
      35370ebd
  24. 26 6月, 2020 1 次提交
    • A
      Extract SourcePropertySymbolBase class (#45411) · b001cfaa
      Andy Gocke 提交于
      Records need to provide a new form of source property symbol with
      different syntax. This PR extracts a new base class to try to share as
      much code as possible with the existing SourcePropertySymbol and the
      SynthesizedRecordPropertySymbol.
      b001cfaa
  25. 24 6月, 2020 1 次提交
  26. 17 6月, 2020 4 次提交
  27. 16 6月, 2020 1 次提交
  28. 12 6月, 2020 1 次提交
  29. 11 6月, 2020 3 次提交
  30. 10 6月, 2020 1 次提交
  31. 09 6月, 2020 1 次提交