Skip to content

Commit aa65f8e

Browse files
committed
Covariant returns
1 parent befc434 commit aa65f8e

76 files changed

Lines changed: 245 additions & 221 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Orm/Xtensive.Orm/Arithmetic/Internal/NullableArithmetic.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,7 @@ public override bool IsSigned
8282
}
8383

8484
/// <inheritdoc/>
85-
protected override IArithmetic<T?> CreateNew(ArithmeticRules rules)
86-
{
87-
return new NullableArithmetic<T>(Provider, rules);
88-
}
85+
protected override NullableArithmetic<T> CreateNew(ArithmeticRules rules) => new(Provider, rules);
8986

9087

9188
// Constructors

Orm/Xtensive.Orm/Arithmetic/Internal/PrimitiveArithmetics.tt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<#@ template language="C#" #>
1+
<#@ template language="C#" #>
22
<#@ assembly name="System.Core" #>
33
<#@ import namespace="System.Linq" #>
44
// Copyright (C) 2008 Xtensive LLC.
@@ -146,10 +146,7 @@ foreach (var type in types) {
146146
}
147147

148148
/// <inheritdoc/>
149-
protected override IArithmetic<<#= primitiveName #>> CreateNew(ArithmeticRules rules)
150-
{
151-
return new <#= className #>(Provider, rules);
152-
}
149+
protected override <#= className #> CreateNew(ArithmeticRules rules) => new(Provider, rules);
153150

154151

155152
// Constructors

Orm/Xtensive.Orm/Collections/ExtensionCollection.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,13 @@ public override void Lock(bool recursive)
106106
#region ICloneable methods
107107

108108
/// <inheritdoc/>
109-
public object Clone()
110-
{
111-
return new ExtensionCollection(this);
112-
}
109+
object ICloneable.Clone() => Clone();
110+
111+
/// <summary>
112+
/// Creates a new object that is a copy of the current instance.
113+
/// </summary>
114+
/// <returns>A new object that is a copy of this instance.</returns>
115+
public ExtensionCollection Clone() => new(this);
113116

114117
#endregion
115118

Orm/Xtensive.Orm/Collections/TypeRegistry.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,14 @@ public override void Lock(bool recursive)
151151

152152
#region ICloneable members
153153

154+
/// <inheritdoc/>
155+
object ICloneable.Clone() => Clone();
156+
154157
/// <summary>
155158
/// Clones this instance.
156159
/// </summary>
157160
/// <returns></returns>
158-
public virtual object Clone()
159-
{
160-
return new TypeRegistry(this);
161-
}
161+
public virtual TypeRegistry Clone() => new TypeRegistry(this);
162162

163163
#endregion
164164

Orm/Xtensive.Orm/Comparison/CastingComparer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public AsymmetricCompareHandler(Func<TSource, TSecond, int> baseCompare)
4040
private readonly AdvancedComparer<TSource> sourceComparer;
4141

4242
/// <inheritdoc/>
43-
protected override IAdvancedComparer<TTarget> CreateNew(ComparisonRules rules)
43+
protected override CastingComparer<TSource, TTarget> CreateNew(ComparisonRules rules)
4444
=> new CastingComparer<TSource, TTarget>(sourceComparer.ApplyRules(rules));
4545

4646
/// <inheritdoc/>

Orm/Xtensive.Orm/Comparison/Internals/ArrayComparer.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ namespace Xtensive.Comparison
1313
internal sealed class ArrayComparer<T> : WrappingComparer<T[], T>,
1414
ISystemComparer<T[]>
1515
{
16-
protected override IAdvancedComparer<T[]> CreateNew(ComparisonRules rules)
17-
=> new ArrayComparer<T>(Provider, ComparisonRules.Combine(rules));
16+
protected override ArrayComparer<T> CreateNew(ComparisonRules rules) => new(Provider, ComparisonRules.Combine(rules));
1817

1918
public override int Compare(T[] x, T[] y)
2019
{

Orm/Xtensive.Orm/Comparison/Internals/AssemblyComparer.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ namespace Xtensive.Comparison
1414
internal sealed class AssemblyComparer: WrappingComparer<Assembly, string>,
1515
ISystemComparer<Assembly>
1616
{
17-
protected override IAdvancedComparer<Assembly> CreateNew(ComparisonRules rules)
18-
=> new AssemblyComparer(Provider, ComparisonRules.Combine(rules));
17+
protected override AssemblyComparer CreateNew(ComparisonRules rules) => new(Provider, ComparisonRules.Combine(rules));
1918

2019
public override int Compare(Assembly x, Assembly y)
2120
{

Orm/Xtensive.Orm/Comparison/Internals/BaseComparerWrapper.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ namespace Xtensive.Comparison
1414
internal class BaseComparerWrapper<T, TBase>: WrappingComparer<T, TBase>
1515
where T: TBase
1616
{
17-
protected override IAdvancedComparer<T> CreateNew(ComparisonRules rules)
18-
=> new BaseComparerWrapper<T, TBase>(Provider, ComparisonRules.Combine(rules));
17+
protected override BaseComparerWrapper<T, TBase> CreateNew(ComparisonRules rules) => new(Provider, ComparisonRules.Combine(rules));
1918

2019
public override int Compare(T x, T y) => BaseComparer.Compare(x, y);
2120

Orm/Xtensive.Orm/Comparison/Internals/BooleanComparer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace Xtensive.Comparison
1414
[Serializable]
1515
internal sealed class BooleanComparer : ValueTypeComparer<bool>
1616
{
17-
protected override IAdvancedComparer<bool> CreateNew(ComparisonRules rules) => new BooleanComparer(Provider, ComparisonRules.Combine(rules));
17+
protected override BooleanComparer CreateNew(ComparisonRules rules) => new(Provider, ComparisonRules.Combine(rules));
1818

1919
public override bool GetNearestValue(bool value, Direction direction)
2020
{

Orm/Xtensive.Orm/Comparison/Internals/ByteComparer.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ namespace Xtensive.Comparison
1212
[Serializable]
1313
internal sealed class ByteComparer : ValueTypeComparer<byte>
1414
{
15-
protected override IAdvancedComparer<byte> CreateNew(ComparisonRules rules)
16-
=> new ByteComparer(Provider, ComparisonRules.Combine(rules));
15+
protected override ByteComparer CreateNew(ComparisonRules rules) => new(Provider, ComparisonRules.Combine(rules));
1716

1817

1918
// Constructors

0 commit comments

Comments
 (0)