From 8a430c52c409a9f7f356efa8766536caa4263a18 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Fri, 15 Dec 2017 22:57:56 +1300 Subject: [PATCH 1/2] Optimize empty arrays usages --- .../Async/CustomPersister.cs | 1 + src/NHibernate.DomainModel/Baz.cs | 2 +- src/NHibernate.DomainModel/CustomPersister.cs | 5 ++-- .../Async/DialectTest/DialectFixture.cs | 2 +- .../Events/PostEvents/PostUpdateFixture.cs | 11 ++++---- .../Async/ExceptionsTest/NullQueryTest.cs | 2 +- src/NHibernate.Test/Async/Legacy/FumTest.cs | 2 +- .../Async/LinqBulkManipulation/Fixture.cs | 6 ++--- .../IntegrationTests/NH2825/FixtureByCode.cs | 5 ++-- .../NHSpecificTest/EmptyMappingsFixture.cs | 2 +- .../Async/NHSpecificTest/NH1421/Fixture.cs | 2 +- .../Async/NHSpecificTest/NH2166/Fixture.cs | 2 +- .../NH4077/PostInsertFixture.cs | 2 +- .../NH4077/PostUpdateFixture.cs | 2 +- .../Async/NHSpecificTest/NH901/Fixture.cs | 3 ++- .../SecondLevelCacheTest/InvalidationTests.cs | 1 - src/NHibernate.Test/Async/TestTestCase.cs | 2 +- .../Async/TypesTest/BinaryBlobTypeFixture.cs | 2 +- .../Async/TypesTest/BinaryTypeFixture.cs | 4 +-- .../BulkManipulation/BaseFixture.cs | 5 ++-- .../DeleteOneToOneOrphansTest.cs | 5 ++-- .../Fk/Composite/DeleteOneToOneOrphansTest.cs | 3 ++- .../DeleteOneToOneOrphansTest.cs | 3 ++- .../DeleteOneToOneOrphansTest.cs | 3 ++- .../DeleteOneToOneOrphansTest.cs | 3 ++- .../DeleteOneToOneOrphansTest.cs | 3 ++- .../DialectTest/DialectFixture.cs | 2 +- .../Events/PostEvents/PostUpdateFixture.cs | 11 ++++---- .../ExceptionsTest/NullQueryTest.cs | 2 +- .../ExpressionTest/InExpressionFixture.cs | 2 +- src/NHibernate.Test/Hql/Ast/BaseFixture.cs | 5 ++-- src/NHibernate.Test/Legacy/FumTest.cs | 2 +- .../Linq/ParameterisedQueries.cs | 2 +- .../LinqBulkManipulation/Fixture.cs | 6 ++--- .../IntegrationTests/NH2825/FixtureByCode.cs | 7 ++--- ...ComponentWithBagOfNestedComponentsTests.cs | 2 +- .../NHSpecificTest/EmptyMappingsFixture.cs | 2 +- .../NHSpecificTest/NH1421/Fixture.cs | 4 +-- .../NHSpecificTest/NH2166/Fixture.cs | 2 +- .../NHSpecificTest/NH2931/Fixture.cs | 5 ++-- .../NHSpecificTest/NH3954/EqualsFixture.cs | 2 +- .../NHSpecificTest/NH3956/Fixture.cs | 7 ++--- .../NH4077/PostInsertFixture.cs | 2 +- .../NH4077/PostUpdateFixture.cs | 2 +- .../NHSpecificTest/NH901/Fixture.cs | 3 ++- src/NHibernate.Test/TestCaseMappingByCode.cs | 5 ++-- src/NHibernate.Test/TestTestCase.cs | 2 +- .../ImplementationOfEqualityTests.cs | 2 +- .../TypesTest/BinaryBlobTypeFixture.cs | 2 +- .../TypesTest/BinaryTypeFixture.cs | 4 +-- .../AnyExtensionTests.cs | 2 +- .../FirstExtensionTests.cs | 2 +- .../FirstOrNullExtensionTests.cs | 2 +- .../UtilityTest/ExpressionsHelperFixture.cs | 5 ++-- .../DefaultFlushEntityEventListener.cs | 2 +- .../ANTLR/Exec/AbstractStatementExecutor.cs | 2 +- .../ANTLR/Exec/MultiTableDeleteExecutor.cs | 2 +- src/NHibernate/Async/IMultiCriteria.cs | 2 ++ .../Entity/AbstractEntityPersister.cs | 2 +- .../Entry/StructuredCollectionCacheEntry.cs | 3 ++- src/NHibernate/Cfg/Configuration.cs | 2 +- src/NHibernate/Cfg/MappingSchema/HbmAny.cs | 4 +-- src/NHibernate/Cfg/MappingSchema/HbmArray.cs | 2 +- src/NHibernate/Cfg/MappingSchema/HbmBag.cs | 4 +-- src/NHibernate/Cfg/MappingSchema/HbmClass.cs | 16 +++++------ .../Cfg/MappingSchema/HbmComponent.cs | 4 +-- .../Cfg/MappingSchema/HbmCompositeElement.cs | 4 +-- .../Cfg/MappingSchema/HbmCompositeIndex.cs | 2 +- .../Cfg/MappingSchema/HbmCompositeMapKey.cs | 2 +- .../Cfg/MappingSchema/HbmDynamicComponent.cs | 4 +-- .../Cfg/MappingSchema/HbmFilterDef.cs | 6 +++-- src/NHibernate/Cfg/MappingSchema/HbmId.cs | 2 +- src/NHibernate/Cfg/MappingSchema/HbmIdbag.cs | 4 +-- .../Cfg/MappingSchema/HbmIndexManyToAny.cs | 2 +- src/NHibernate/Cfg/MappingSchema/HbmJoin.cs | 2 +- .../Cfg/MappingSchema/HbmJoinedSubclass.cs | 10 +++---- .../Cfg/MappingSchema/HbmKeyManyToOne.cs | 2 +- .../Cfg/MappingSchema/HbmKeyProperty.cs | 2 +- src/NHibernate/Cfg/MappingSchema/HbmList.cs | 4 +-- .../Cfg/MappingSchema/HbmManyToAny.cs | 2 +- .../Cfg/MappingSchema/HbmManyToOne.cs | 2 +- src/NHibernate/Cfg/MappingSchema/HbmMap.cs | 4 +-- .../Cfg/MappingSchema/HbmMapping.cs | 27 ++++++++++--------- .../Cfg/MappingSchema/HbmNaturalId.cs | 2 +- .../HbmNestedCompositeElement.cs | 7 ++--- .../Cfg/MappingSchema/HbmOneToOne.cs | 5 ++-- .../Cfg/MappingSchema/HbmPrimitiveArray.cs | 2 +- .../Cfg/MappingSchema/HbmProperties.cs | 4 +-- .../Cfg/MappingSchema/HbmProperty.cs | 2 +- src/NHibernate/Cfg/MappingSchema/HbmSet.cs | 4 +-- .../Cfg/MappingSchema/HbmSubclass.cs | 12 ++++----- .../Cfg/MappingSchema/HbmTimestamp.cs | 2 +- .../Cfg/MappingSchema/HbmUnionSubclass.cs | 10 +++---- .../Cfg/MappingSchema/HbmVersion.cs | 5 ++-- .../XmlHbmBinding/ClassCompositeIdBinder.cs | 4 +-- .../Cfg/XmlHbmBinding/IdGeneratorBinder.cs | 4 +-- .../Cfg/XmlHbmBinding/MappingRootBinder.cs | 4 +-- .../Cfg/XmlHbmBinding/NamedSQLQueryBinder.cs | 5 ++-- .../XmlHbmBinding/ResultSetMappingBinder.cs | 9 ++++--- .../Criterion/AbstractEmptinessExpression.cs | 2 +- src/NHibernate/Criterion/Expression.cs | 5 ++-- src/NHibernate/Criterion/NotNullExpression.cs | 2 +- src/NHibernate/Criterion/NullExpression.cs | 2 +- src/NHibernate/Criterion/Order.cs | 2 +- .../Criterion/PropertyExpression.cs | 2 +- src/NHibernate/Criterion/SQLProjection.cs | 2 +- src/NHibernate/Criterion/SimpleProjection.cs | 2 +- src/NHibernate/Driver/FirebirdClientDriver.cs | 2 +- src/NHibernate/Engine/QueryParameters.cs | 8 +++--- src/NHibernate/Engine/UnsavedValueFactory.cs | 2 +- .../DefaultFlushEntityEventListener.cs | 2 +- .../ANTLR/Exec/AbstractStatementExecutor.cs | 2 +- .../ANTLR/Exec/MultiTableDeleteExecutor.cs | 2 +- .../Ast/ANTLR/Tree/AssignmentSpecification.cs | 2 +- src/NHibernate/Impl/ExpressionProcessor.cs | 2 +- src/NHibernate/Impl/SessionImpl.cs | 4 +-- src/NHibernate/Linq/Clauses/NhJoinClause.cs | 2 +- .../Loader/AbstractEntityJoinWalker.cs | 3 ++- .../Mapping/ByCode/Impl/AnyMapper.cs | 4 +-- .../Mapping/ByCode/Impl/ManyToAnyMapper.cs | 4 +-- src/NHibernate/Mapping/ByCode/Import.cs | 2 +- .../Mapping/ByCode/TypeExtensions.cs | 4 +-- src/NHibernate/Mapping/Collection.cs | 6 ++--- .../Entity/AbstractEntityPersister.cs | 2 +- .../Properties/BasicPropertyAccessor.cs | 4 +-- .../DynamicProxy/DefaultArgumentHandler.cs | 2 +- .../Proxy/DynamicProxy/ProxyFactory.cs | 10 +++---- .../Proxy/DynamicProxy/ProxyImplementor.cs | 4 +-- .../Proxy/NHibernateProxyBuilder.cs | 2 +- .../SqlCommand/BackTrackCacheParameterList.cs | 5 ++-- src/NHibernate/SqlTypes/SqlTypeFactory.cs | 2 +- src/NHibernate/Type/CollectionType.cs | 2 +- src/NHibernate/Type/DbTimestampType.cs | 2 +- src/NHibernate/Type/OneToOneType.cs | 4 +-- src/NHibernate/Type/TypeFactory.cs | 2 +- src/NHibernate/Type/TypeHelper.cs | 2 +- src/NHibernate/Util/ArrayHelper.cs | 12 ++++++--- src/NHibernate/Util/CollectionHelper.cs | 4 +-- 138 files changed, 277 insertions(+), 238 deletions(-) diff --git a/src/NHibernate.DomainModel/Async/CustomPersister.cs b/src/NHibernate.DomainModel/Async/CustomPersister.cs index 889471e0441..104cc514c36 100644 --- a/src/NHibernate.DomainModel/Async/CustomPersister.cs +++ b/src/NHibernate.DomainModel/Async/CustomPersister.cs @@ -21,6 +21,7 @@ using NHibernate.Tuple.Entity; using NHibernate.Type; using NHibernate.Util; +using Array = System.Array; namespace NHibernate.DomainModel { diff --git a/src/NHibernate.DomainModel/Baz.cs b/src/NHibernate.DomainModel/Baz.cs index 2f661a17675..acb2c846dcd 100644 --- a/src/NHibernate.DomainModel/Baz.cs +++ b/src/NHibernate.DomainModel/Baz.cs @@ -396,7 +396,7 @@ public void SetDefaults() StringArray = StringSet.ToArray(); StringList = new List(StringArray); IntArray = new int[] {1, 3, 3, 7}; - FooArray = new Foo[0]; + FooArray = Array.Empty(); Customs = new List(); Customs.Add(new String[] {"foo", "bar"}); diff --git a/src/NHibernate.DomainModel/CustomPersister.cs b/src/NHibernate.DomainModel/CustomPersister.cs index 473f136b94c..04ce8d6625b 100644 --- a/src/NHibernate.DomainModel/CustomPersister.cs +++ b/src/NHibernate.DomainModel/CustomPersister.cs @@ -11,6 +11,7 @@ using NHibernate.Tuple.Entity; using NHibernate.Type; using NHibernate.Util; +using Array = System.Array; namespace NHibernate.DomainModel { @@ -130,12 +131,12 @@ public bool[] PropertyInsertability public ValueInclusion[] PropertyInsertGenerationInclusions { - get { return new ValueInclusion[0]; } + get { return Array.Empty(); } } public ValueInclusion[] PropertyUpdateGenerationInclusions { - get { return new ValueInclusion[0]; } + get { return Array.Empty(); } } public bool[] PropertyCheckability diff --git a/src/NHibernate.Test/Async/DialectTest/DialectFixture.cs b/src/NHibernate.Test/Async/DialectTest/DialectFixture.cs index e822ea63452..2fd3d53d33a 100644 --- a/src/NHibernate.Test/Async/DialectTest/DialectFixture.cs +++ b/src/NHibernate.Test/Async/DialectTest/DialectFixture.cs @@ -68,7 +68,7 @@ public async Task CurrentTimestampSelectionAsync() using (var connection = await (sessions.ConnectionProvider.GetConnectionAsync(CancellationToken.None))) { - var statement = driver.GenerateCommand(CommandType.Text, new SqlString(dialect.CurrentTimestampSelectString), new SqlType[0]); + var statement = driver.GenerateCommand(CommandType.Text, new SqlString(dialect.CurrentTimestampSelectString), Array.Empty()); statement.Connection = connection; using (var reader = await (statement.ExecuteReaderAsync())) { diff --git a/src/NHibernate.Test/Async/Events/PostEvents/PostUpdateFixture.cs b/src/NHibernate.Test/Async/Events/PostEvents/PostUpdateFixture.cs index aa3487708a0..bcea4c154f0 100644 --- a/src/NHibernate.Test/Async/Events/PostEvents/PostUpdateFixture.cs +++ b/src/NHibernate.Test/Async/Events/PostEvents/PostUpdateFixture.cs @@ -8,6 +8,7 @@ //------------------------------------------------------------------------------ +using System; using System.Collections; using System.Collections.Generic; using NHibernate.Event; @@ -56,7 +57,7 @@ public async Task ImplicitFlushAsync() } await (DbCleanupAsync()); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -85,7 +86,7 @@ public async Task ExplicitUpdateAsync() } await (DbCleanupAsync()); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -123,7 +124,7 @@ public async Task WithDetachedObjectAsync() } await (DbCleanupAsync()); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -163,7 +164,7 @@ public async Task UpdateDetachedObjectAsync() } await (DbCleanupAsync()); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -202,7 +203,7 @@ public async Task UpdateDetachedObjectWithLockAsync() } await (DbCleanupAsync()); - ((DebugSessionFactory)Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory)Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } private async Task DbCleanupAsync(CancellationToken cancellationToken = default(CancellationToken)) { diff --git a/src/NHibernate.Test/Async/ExceptionsTest/NullQueryTest.cs b/src/NHibernate.Test/Async/ExceptionsTest/NullQueryTest.cs index 8cd47a15452..5fa295ef6f1 100644 --- a/src/NHibernate.Test/Async/ExceptionsTest/NullQueryTest.cs +++ b/src/NHibernate.Test/Async/ExceptionsTest/NullQueryTest.cs @@ -28,7 +28,7 @@ public class NullQueryTestAsync : TestCase protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } #endregion diff --git a/src/NHibernate.Test/Async/Legacy/FumTest.cs b/src/NHibernate.Test/Async/Legacy/FumTest.cs index 9c94d2a8d81..779c374d42d 100644 --- a/src/NHibernate.Test/Async/Legacy/FumTest.cs +++ b/src/NHibernate.Test/Async/Legacy/FumTest.cs @@ -86,7 +86,7 @@ public async Task CriteriaCollectionAsync() Assert.IsTrue(b.MapComponent.Stringmap.Count == 2); int none = (await (s.CreateCriteria(typeof(Fum)) - .Add(Expression.In("FumString", new string[0])) + .Add(Expression.In("FumString", Array.Empty())) .ListAsync())).Count; Assert.AreEqual(0, none); diff --git a/src/NHibernate.Test/Async/LinqBulkManipulation/Fixture.cs b/src/NHibernate.Test/Async/LinqBulkManipulation/Fixture.cs index 37f5b248623..dd131a898f4 100644 --- a/src/NHibernate.Test/Async/LinqBulkManipulation/Fixture.cs +++ b/src/NHibernate.Test/Async/LinqBulkManipulation/Fixture.cs @@ -25,7 +25,7 @@ namespace NHibernate.Test.LinqBulkManipulation [TestFixture] public class FixtureAsync : TestCase { - protected override IList Mappings => new string[0]; + protected override IList Mappings => Array.Empty(); protected override void Configure(Cfg.Configuration configuration) { @@ -970,7 +970,7 @@ public async Task SimpleDeleteOnAnimalAsync() using (var t = s.BeginTransaction()) { // Get rid of FK which may fail the test - _doll.Friends = new Human[0]; + _doll.Friends = Array.Empty(); await (s.UpdateAsync(_doll)); await (t.CommitAsync()); } @@ -1029,7 +1029,7 @@ public async Task DeleteOnJoinedSubclassAsync() using (var t = s.BeginTransaction()) { // Get rid of FK which may fail the test - _doll.Friends = new Human[0]; + _doll.Friends = Array.Empty(); await (s.UpdateAsync(_doll)); await (t.CommitAsync()); } diff --git a/src/NHibernate.Test/Async/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs b/src/NHibernate.Test/Async/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs index 56967846d45..e4ef7e134a2 100644 --- a/src/NHibernate.Test/Async/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs +++ b/src/NHibernate.Test/Async/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs @@ -8,6 +8,7 @@ //------------------------------------------------------------------------------ +using System; using System.Collections; using NHibernate.Cfg.MappingSchema; using NHibernate.Mapping.ByCode; @@ -21,7 +22,7 @@ public class FixtureByCodeAsync : FixtureAsync { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override string MappingsAssembly @@ -63,4 +64,4 @@ private HbmMapping GetMappings() return mapper.CompileMappingForAllExplicitlyAddedEntities(); } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/Async/NHSpecificTest/EmptyMappingsFixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/EmptyMappingsFixture.cs index 556893083c5..97fcfe57f9f 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/EmptyMappingsFixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/EmptyMappingsFixture.cs @@ -29,7 +29,7 @@ public class EmptyMappingsFixtureAsync : TestCase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } [Test] diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH1421/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH1421/Fixture.cs index 930a266889a..5650f0bc2df 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH1421/Fixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH1421/Fixture.cs @@ -27,7 +27,7 @@ public void WhenParameterListIsEmptyUsingQueryThenDoesNotTrowsNullReferenceExcep using (var s = OpenSession()) { var query = s.CreateQuery("from AnEntity a where a.id in (:myList)"); - Assert.That(() => query.SetParameterList("myList", new long[0]).ListAsync(), Throws.Exception.Not.InstanceOf()); + Assert.That(() => query.SetParameterList("myList", Array.Empty()).ListAsync(), Throws.Exception.Not.InstanceOf()); } } } diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH2166/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH2166/Fixture.cs index 3e923eb932c..ce2818d7c47 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH2166/Fixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH2166/Fixture.cs @@ -21,7 +21,7 @@ public class FixtureAsync: TestCase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } [Test] diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostInsertFixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostInsertFixture.cs index 79f958ebd5a..b1cf11738ad 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostInsertFixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostInsertFixture.cs @@ -74,7 +74,7 @@ protected override HbmMapping GetMappings() protected override void Configure(Configuration configuration) { base.Configure(configuration); - var existingListeners = (configuration.EventListeners.PostInsertEventListeners ?? new IPostInsertEventListener[0]).ToList(); + var existingListeners = (configuration.EventListeners.PostInsertEventListeners ?? Array.Empty()).ToList(); // this evil listener uses the session to perform a few queries and causes an auto-flush to happen existingListeners.Add(new CausesAutoflushListener()); configuration.EventListeners.PostInsertEventListeners = existingListeners.ToArray(); diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostUpdateFixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostUpdateFixture.cs index af02dfa76a8..f2d2f9fc2ff 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostUpdateFixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH4077/PostUpdateFixture.cs @@ -68,7 +68,7 @@ protected override HbmMapping GetMappings() protected override void Configure(Configuration configuration) { base.Configure(configuration); - var existingListeners = (configuration.EventListeners.PostUpdateEventListeners ?? new IPostUpdateEventListener[0]).ToList(); + var existingListeners = (configuration.EventListeners.PostUpdateEventListeners ?? Array.Empty()).ToList(); // this evil listener uses the session to perform a few queries and causes an auto-flush to happen existingListeners.Add(new CausesAutoflushListener()); configuration.EventListeners.PostUpdateEventListeners = existingListeners.ToArray(); diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH901/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH901/Fixture.cs index c576dd1a910..a0356b166fb 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/NH901/Fixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/NH901/Fixture.cs @@ -8,6 +8,7 @@ //------------------------------------------------------------------------------ +using System; using System.Collections; using NHibernate.Cfg; using NHibernate.Mapping.ByCode; @@ -118,7 +119,7 @@ public class FixtureByCodeAsync : FixtureBaseAsync { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override string MappingsAssembly diff --git a/src/NHibernate.Test/Async/SecondLevelCacheTest/InvalidationTests.cs b/src/NHibernate.Test/Async/SecondLevelCacheTest/InvalidationTests.cs index 76e5b040cbb..794140f797b 100644 --- a/src/NHibernate.Test/Async/SecondLevelCacheTest/InvalidationTests.cs +++ b/src/NHibernate.Test/Async/SecondLevelCacheTest/InvalidationTests.cs @@ -14,7 +14,6 @@ using System.Reflection; using NHibernate.Cache; using NHibernate.Cfg; -using NHibernate.Engine; using NHibernate.Impl; using NHibernate.Test.SecondLevelCacheTests; using NSubstitute; diff --git a/src/NHibernate.Test/Async/TestTestCase.cs b/src/NHibernate.Test/Async/TestTestCase.cs index 9e907c57018..10f40510026 100644 --- a/src/NHibernate.Test/Async/TestTestCase.cs +++ b/src/NHibernate.Test/Async/TestTestCase.cs @@ -23,7 +23,7 @@ public class TestTestCaseAsync : TestCase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } private bool _failOnTearDown; diff --git a/src/NHibernate.Test/Async/TypesTest/BinaryBlobTypeFixture.cs b/src/NHibernate.Test/Async/TypesTest/BinaryBlobTypeFixture.cs index c4d28722579..9ff01e0f495 100644 --- a/src/NHibernate.Test/Async/TypesTest/BinaryBlobTypeFixture.cs +++ b/src/NHibernate.Test/Async/TypesTest/BinaryBlobTypeFixture.cs @@ -69,7 +69,7 @@ public async Task ReadWriteZeroLenAsync() using (ISession s = OpenSession()) { BinaryBlobClass b = new BinaryBlobClass(); - b.BinaryBlob = new byte[0]; + b.BinaryBlob = Array.Empty(); savedId = await (s.SaveAsync(b)); await (s.FlushAsync()); } diff --git a/src/NHibernate.Test/Async/TypesTest/BinaryTypeFixture.cs b/src/NHibernate.Test/Async/TypesTest/BinaryTypeFixture.cs index 7421dd7cbe4..d4f4cd52fc7 100644 --- a/src/NHibernate.Test/Async/TypesTest/BinaryTypeFixture.cs +++ b/src/NHibernate.Test/Async/TypesTest/BinaryTypeFixture.cs @@ -78,8 +78,8 @@ public async Task InsertZeroLengthAsync() BinaryClass bcBinary = new BinaryClass(); bcBinary.Id = 1; - bcBinary.DefaultSize = new byte[0]; - bcBinary.WithSize = new byte[0]; + bcBinary.DefaultSize = Array.Empty(); + bcBinary.WithSize = Array.Empty(); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); diff --git a/src/NHibernate.Test/BulkManipulation/BaseFixture.cs b/src/NHibernate.Test/BulkManipulation/BaseFixture.cs index 2817e549991..7a8870cc1f6 100644 --- a/src/NHibernate.Test/BulkManipulation/BaseFixture.cs +++ b/src/NHibernate.Test/BulkManipulation/BaseFixture.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Hql.Ast.ANTLR; using System.Collections.Generic; @@ -13,7 +14,7 @@ public class BaseFixture: TestCase protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } #endregion @@ -38,4 +39,4 @@ public string GetSql(string query) return qt.SQLString; } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Bidirectional/DeleteOneToOneOrphansTest.cs b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Bidirectional/DeleteOneToOneOrphansTest.cs index b25839232d1..692ceb86ed9 100644 --- a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Bidirectional/DeleteOneToOneOrphansTest.cs +++ b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Bidirectional/DeleteOneToOneOrphansTest.cs @@ -1,4 +1,5 @@ -using System.Collections; +using System; +using System.Collections; using NHibernate.Cfg; using NHibernate.Mapping.ByCode; using NUnit.Framework; @@ -92,7 +93,7 @@ public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override void AddMappings(Configuration configuration) diff --git a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Composite/DeleteOneToOneOrphansTest.cs b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Composite/DeleteOneToOneOrphansTest.cs index 100ec6424a5..bb61c7245f9 100644 --- a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Composite/DeleteOneToOneOrphansTest.cs +++ b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Composite/DeleteOneToOneOrphansTest.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Cfg.MappingSchema; using NHibernate.Mapping.ByCode; @@ -93,7 +94,7 @@ public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } diff --git a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Bidirectional/DeleteOneToOneOrphansTest.cs b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Bidirectional/DeleteOneToOneOrphansTest.cs index 960f154dcde..eec7722552f 100644 --- a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Bidirectional/DeleteOneToOneOrphansTest.cs +++ b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Bidirectional/DeleteOneToOneOrphansTest.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Cfg; using NHibernate.Mapping.ByCode; @@ -92,7 +93,7 @@ public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override void AddMappings(Configuration configuration) diff --git a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Unidirectional/DeleteOneToOneOrphansTest.cs b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Unidirectional/DeleteOneToOneOrphansTest.cs index c550f3f4f60..beccfa339af 100644 --- a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Unidirectional/DeleteOneToOneOrphansTest.cs +++ b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Fk/Reversed/Unidirectional/DeleteOneToOneOrphansTest.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Cfg; using NHibernate.Mapping.ByCode; @@ -142,7 +143,7 @@ public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override void AddMappings(Configuration configuration) diff --git a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Bidirectional/DeleteOneToOneOrphansTest.cs b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Bidirectional/DeleteOneToOneOrphansTest.cs index 26c1db69632..cf7e549628b 100644 --- a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Bidirectional/DeleteOneToOneOrphansTest.cs +++ b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Bidirectional/DeleteOneToOneOrphansTest.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Cfg; using NHibernate.Mapping.ByCode; @@ -95,7 +96,7 @@ public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override void AddMappings(Configuration configuration) diff --git a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Unidirectional/DeleteOneToOneOrphansTest.cs b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Unidirectional/DeleteOneToOneOrphansTest.cs index 0a263003e1e..34776c2b8d2 100644 --- a/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Unidirectional/DeleteOneToOneOrphansTest.cs +++ b/src/NHibernate.Test/Cascade/OneToOneCascadeDelete/Pk/Unidirectional/DeleteOneToOneOrphansTest.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Cfg.MappingSchema; using NHibernate.Mapping.ByCode; @@ -107,7 +108,7 @@ public class DeleteOneToOneOrphansTestByCode : DeleteOneToOneOrphansTest { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override void AddMappings(Cfg.Configuration configuration) diff --git a/src/NHibernate.Test/DialectTest/DialectFixture.cs b/src/NHibernate.Test/DialectTest/DialectFixture.cs index 17899c1e88f..952e3e6c154 100644 --- a/src/NHibernate.Test/DialectTest/DialectFixture.cs +++ b/src/NHibernate.Test/DialectTest/DialectFixture.cs @@ -161,7 +161,7 @@ public void CurrentTimestampSelection() using (var connection = sessions.ConnectionProvider.GetConnection()) { - var statement = driver.GenerateCommand(CommandType.Text, new SqlString(dialect.CurrentTimestampSelectString), new SqlType[0]); + var statement = driver.GenerateCommand(CommandType.Text, new SqlString(dialect.CurrentTimestampSelectString), Array.Empty()); statement.Connection = connection; using (var reader = statement.ExecuteReader()) { diff --git a/src/NHibernate.Test/Events/PostEvents/PostUpdateFixture.cs b/src/NHibernate.Test/Events/PostEvents/PostUpdateFixture.cs index f09852303d8..cf607e3ba49 100644 --- a/src/NHibernate.Test/Events/PostEvents/PostUpdateFixture.cs +++ b/src/NHibernate.Test/Events/PostEvents/PostUpdateFixture.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using NHibernate.Event; @@ -44,7 +45,7 @@ public void ImplicitFlush() } DbCleanup(); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -73,7 +74,7 @@ public void ExplicitUpdate() } DbCleanup(); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -111,7 +112,7 @@ public void WithDetachedObject() } DbCleanup(); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -151,7 +152,7 @@ public void UpdateDetachedObject() } DbCleanup(); - ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory) Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } [Test] @@ -190,7 +191,7 @@ public void UpdateDetachedObjectWithLock() } DbCleanup(); - ((DebugSessionFactory)Sfi).EventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[0]; + ((DebugSessionFactory)Sfi).EventListeners.PostUpdateEventListeners = Array.Empty(); } private void DbCleanup() { diff --git a/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs b/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs index 5af17f0a647..177bdf560aa 100644 --- a/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs +++ b/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs @@ -17,7 +17,7 @@ public class NullQueryTest : TestCase protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } #endregion diff --git a/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs index 3c4ad489661..16ed8746020 100644 --- a/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs @@ -34,7 +34,7 @@ public void InSqlStringTest() public void InEmptyList() { ISession session = factory.OpenSession(); - InExpression expression = new InExpression("Count", new object[0]); + InExpression expression = new InExpression("Count", Array.Empty()); CreateObjects(typeof(Simple), session); SqlString sql = expression.ToSqlString(criteria, criteriaQuery); Assert.AreEqual("1=0", sql.ToString()); diff --git a/src/NHibernate.Test/Hql/Ast/BaseFixture.cs b/src/NHibernate.Test/Hql/Ast/BaseFixture.cs index 1f2d0d6b18c..22a8c2e0d73 100644 --- a/src/NHibernate.Test/Hql/Ast/BaseFixture.cs +++ b/src/NHibernate.Test/Hql/Ast/BaseFixture.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using NHibernate.Hql.Ast.ANTLR; @@ -13,7 +14,7 @@ public class BaseFixture: TestCase protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } #endregion @@ -43,4 +44,4 @@ public string GetSql(string query, IDictionary replacements) return qt.SQLString; } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/Legacy/FumTest.cs b/src/NHibernate.Test/Legacy/FumTest.cs index d7aec5d6231..ab43bed1595 100644 --- a/src/NHibernate.Test/Legacy/FumTest.cs +++ b/src/NHibernate.Test/Legacy/FumTest.cs @@ -75,7 +75,7 @@ public void CriteriaCollection() Assert.IsTrue(b.MapComponent.Stringmap.Count == 2); int none = s.CreateCriteria(typeof(Fum)) - .Add(Expression.In("FumString", new string[0])) + .Add(Expression.In("FumString", Array.Empty())) .List().Count; Assert.AreEqual(0, none); diff --git a/src/NHibernate.Test/Linq/ParameterisedQueries.cs b/src/NHibernate.Test/Linq/ParameterisedQueries.cs index 6456ba0963b..76e3bc0d505 100644 --- a/src/NHibernate.Test/Linq/ParameterisedQueries.cs +++ b/src/NHibernate.Test/Linq/ParameterisedQueries.cs @@ -236,7 +236,7 @@ public void Different_Null_Returns_Different_Keys() protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } } } \ No newline at end of file diff --git a/src/NHibernate.Test/LinqBulkManipulation/Fixture.cs b/src/NHibernate.Test/LinqBulkManipulation/Fixture.cs index c376163051d..82fa9956909 100644 --- a/src/NHibernate.Test/LinqBulkManipulation/Fixture.cs +++ b/src/NHibernate.Test/LinqBulkManipulation/Fixture.cs @@ -14,7 +14,7 @@ namespace NHibernate.Test.LinqBulkManipulation [TestFixture] public class Fixture : TestCase { - protected override IList Mappings => new string[0]; + protected override IList Mappings => Array.Empty(); protected override void Configure(Cfg.Configuration configuration) { @@ -998,7 +998,7 @@ public void SimpleDeleteOnAnimal() using (var t = s.BeginTransaction()) { // Get rid of FK which may fail the test - _doll.Friends = new Human[0]; + _doll.Friends = Array.Empty(); s.Update(_doll); t.Commit(); } @@ -1057,7 +1057,7 @@ public void DeleteOnJoinedSubclass() using (var t = s.BeginTransaction()) { // Get rid of FK which may fail the test - _doll.Friends = new Human[0]; + _doll.Friends = Array.Empty(); s.Update(_doll); t.Commit(); } diff --git a/src/NHibernate.Test/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs b/src/NHibernate.Test/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs index 4f5e9728e1a..34dadd7b590 100644 --- a/src/NHibernate.Test/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs +++ b/src/NHibernate.Test/MappingByCode/IntegrationTests/NH2825/FixtureByCode.cs @@ -1,4 +1,5 @@ -using System.Collections; +using System; +using System.Collections; using NHibernate.Cfg.MappingSchema; using NHibernate.Mapping.ByCode; using NUnit.Framework; @@ -10,7 +11,7 @@ public class FixtureByCode : Fixture { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override string MappingsAssembly @@ -52,4 +53,4 @@ private HbmMapping GetMappings() return mapper.CompileMappingForAllExplicitlyAddedEntities(); } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/MappingByCode/MappersTests/ComponentWithBagOfNestedComponentsTests.cs b/src/NHibernate.Test/MappingByCode/MappersTests/ComponentWithBagOfNestedComponentsTests.cs index 9206ecc3e18..fe7a0e0780f 100644 --- a/src/NHibernate.Test/MappingByCode/MappersTests/ComponentWithBagOfNestedComponentsTests.cs +++ b/src/NHibernate.Test/MappingByCode/MappersTests/ComponentWithBagOfNestedComponentsTests.cs @@ -58,7 +58,7 @@ protected override IList Mappings { // We can perform these tests without // creating a data schema - return new string[0]; + return Array.Empty(); } } diff --git a/src/NHibernate.Test/NHSpecificTest/EmptyMappingsFixture.cs b/src/NHibernate.Test/NHSpecificTest/EmptyMappingsFixture.cs index 6704e5877be..0f6761999d6 100644 --- a/src/NHibernate.Test/NHSpecificTest/EmptyMappingsFixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/EmptyMappingsFixture.cs @@ -17,7 +17,7 @@ public class EmptyMappingsFixture : TestCase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } [Test] diff --git a/src/NHibernate.Test/NHSpecificTest/NH1421/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH1421/Fixture.cs index 2d622b2b2f5..8f2e002ca4b 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH1421/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH1421/Fixture.cs @@ -15,7 +15,7 @@ public void WhenParameterListIsEmptyArrayUsingQueryThenDoesNotTrowsNullReference using (var s = OpenSession()) { var query = s.CreateQuery("from AnEntity a where a.id in (:myList)"); - Assert.That(() => query.SetParameterList("myList", new long[0]), Throws.Exception.Not.InstanceOf()); + Assert.That(() => query.SetParameterList("myList", Array.Empty()), Throws.Exception.Not.InstanceOf()); } } @@ -57,7 +57,7 @@ public void WhenParameterListIsEmptyUsingQueryThenDoesNotTrowsNullReferenceExcep using (var s = OpenSession()) { var query = s.CreateQuery("from AnEntity a where a.id in (:myList)"); - Assert.That(() => query.SetParameterList("myList", new long[0]).List(), Throws.Exception.Not.InstanceOf()); + Assert.That(() => query.SetParameterList("myList", Array.Empty()).List(), Throws.Exception.Not.InstanceOf()); } } } diff --git a/src/NHibernate.Test/NHSpecificTest/NH2166/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2166/Fixture.cs index 341fc5143fd..539a58eec4a 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH2166/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH2166/Fixture.cs @@ -10,7 +10,7 @@ public class Fixture: TestCase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } [Test] diff --git a/src/NHibernate.Test/NHSpecificTest/NH2931/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2931/Fixture.cs index 6140f5e0ab2..2bdc5b02066 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH2931/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH2931/Fixture.cs @@ -1,4 +1,5 @@ -using NHibernate.Mapping.ByCode; +using System; +using NHibernate.Mapping.ByCode; using NUnit.Framework; using System.Collections.Generic; using System.Linq; @@ -11,7 +12,7 @@ public class MappingByCodeTest : BugTestCase //no xml mappings here, since we use MappingByCode protected override System.Collections.IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } [Test] diff --git a/src/NHibernate.Test/NHSpecificTest/NH3954/EqualsFixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3954/EqualsFixture.cs index 5b1c896da1d..5d55e7c0a1f 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3954/EqualsFixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3954/EqualsFixture.cs @@ -30,7 +30,7 @@ private void TweakEntry(ProxyCacheEntry entryToTweak, int hashcode) public void TypeEquality() { var entry1 = new ProxyCacheEntry(typeof(Entity1), null); - var entry2 = new ProxyCacheEntry(typeof(Entity1), new System.Type[0]); + var entry2 = new ProxyCacheEntry(typeof(Entity1), System.Type.EmptyTypes); Assert.IsTrue(entry1.Equals(entry2)); Assert.IsTrue(entry2.Equals(entry1)); } diff --git a/src/NHibernate.Test/NHSpecificTest/NH3956/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3956/Fixture.cs index adf8c31e4b2..92d4de9943c 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH3956/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH3956/Fixture.cs @@ -1,4 +1,5 @@ -using System.Reflection; +using System; +using System.Reflection; using NHibernate.Engine.Query.Sql; using NUnit.Framework; @@ -26,7 +27,7 @@ public void NativeSQLQuerySpecificationEqualityOnQuery() { var spec1 = new NativeSQLQuerySpecification("select blah", null, null); // Empty spaces array should be equivalent to null. Maybe results too but current implementation does not handle this. - var spec2 = new NativeSQLQuerySpecification("select blah", null, new string[0]); + var spec2 = new NativeSQLQuerySpecification("select blah", null, Array.Empty()); Assert.IsTrue(spec1.Equals(spec2)); Assert.IsTrue(spec2.Equals(spec1)); @@ -65,7 +66,7 @@ public void NativeSQLQuerySpecificationEqualityOnReturns() new NativeSQLQueryScalarReturn("alias2", NHibernateUtil.Decimal) }, // Empty spaces array should be equivalent to null. - new string[0]); + Array.Empty()); Assert.IsTrue(spec1.Equals(spec2)); Assert.IsTrue(spec2.Equals(spec1)); diff --git a/src/NHibernate.Test/NHSpecificTest/NH4077/PostInsertFixture.cs b/src/NHibernate.Test/NHSpecificTest/NH4077/PostInsertFixture.cs index 9e02d22dba4..9cb011fc9b0 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH4077/PostInsertFixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH4077/PostInsertFixture.cs @@ -62,7 +62,7 @@ protected override HbmMapping GetMappings() protected override void Configure(Configuration configuration) { base.Configure(configuration); - var existingListeners = (configuration.EventListeners.PostInsertEventListeners ?? new IPostInsertEventListener[0]).ToList(); + var existingListeners = (configuration.EventListeners.PostInsertEventListeners ?? Array.Empty()).ToList(); // this evil listener uses the session to perform a few queries and causes an auto-flush to happen existingListeners.Add(new CausesAutoflushListener()); configuration.EventListeners.PostInsertEventListeners = existingListeners.ToArray(); diff --git a/src/NHibernate.Test/NHSpecificTest/NH4077/PostUpdateFixture.cs b/src/NHibernate.Test/NHSpecificTest/NH4077/PostUpdateFixture.cs index 8e9d9932b83..ba2b9beb351 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH4077/PostUpdateFixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH4077/PostUpdateFixture.cs @@ -56,7 +56,7 @@ protected override HbmMapping GetMappings() protected override void Configure(Configuration configuration) { base.Configure(configuration); - var existingListeners = (configuration.EventListeners.PostUpdateEventListeners ?? new IPostUpdateEventListener[0]).ToList(); + var existingListeners = (configuration.EventListeners.PostUpdateEventListeners ?? Array.Empty()).ToList(); // this evil listener uses the session to perform a few queries and causes an auto-flush to happen existingListeners.Add(new CausesAutoflushListener()); configuration.EventListeners.PostUpdateEventListeners = existingListeners.ToArray(); diff --git a/src/NHibernate.Test/NHSpecificTest/NH901/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH901/Fixture.cs index c7b06e82a42..69fcc445147 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH901/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH901/Fixture.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Cfg; using NHibernate.Mapping.ByCode; @@ -107,7 +108,7 @@ public class FixtureByCode : FixtureBase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override string MappingsAssembly diff --git a/src/NHibernate.Test/TestCaseMappingByCode.cs b/src/NHibernate.Test/TestCaseMappingByCode.cs index 1b9eb7a416a..97bb4bb4ec4 100644 --- a/src/NHibernate.Test/TestCaseMappingByCode.cs +++ b/src/NHibernate.Test/TestCaseMappingByCode.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using NHibernate.Cfg.MappingSchema; @@ -7,7 +8,7 @@ public abstract class TestCaseMappingByCode:TestCase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } protected override string MappingsAssembly @@ -22,4 +23,4 @@ protected override void AddMappings(Cfg.Configuration configuration) protected abstract HbmMapping GetMappings(); } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/TestTestCase.cs b/src/NHibernate.Test/TestTestCase.cs index e4e8efe46e8..caa865228e4 100644 --- a/src/NHibernate.Test/TestTestCase.cs +++ b/src/NHibernate.Test/TestTestCase.cs @@ -12,7 +12,7 @@ public class TestTestCase : TestCase { protected override IList Mappings { - get { return new string[0]; } + get { return Array.Empty(); } } private bool _failOnTearDown; diff --git a/src/NHibernate.Test/TransformTests/ImplementationOfEqualityTests.cs b/src/NHibernate.Test/TransformTests/ImplementationOfEqualityTests.cs index 863430ac06d..149f1e05aea 100644 --- a/src/NHibernate.Test/TransformTests/ImplementationOfEqualityTests.cs +++ b/src/NHibernate.Test/TransformTests/ImplementationOfEqualityTests.cs @@ -66,7 +66,7 @@ public void AliasToBeanResultTransformer_ShouldHaveEqualityBasedOnCtorParameter( [Test] public void AliasToBeanConstructorResultTransformer_ShouldHaveEqualityBasedOnCtorParameter() { - var emptyCtor = new System.Type[0]; + var emptyCtor = System.Type.EmptyTypes; var transformer1 = new AliasToBeanConstructorResultTransformer(typeof(object).GetConstructor(emptyCtor)); var transformer2 = new AliasToBeanConstructorResultTransformer(typeof(object).GetConstructor(emptyCtor)); Assert.That(transformer1, Is.EqualTo(transformer2)); diff --git a/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs b/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs index f7afa0b1155..81ce6e5a499 100644 --- a/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs +++ b/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs @@ -58,7 +58,7 @@ public void ReadWriteZeroLen() using (ISession s = OpenSession()) { BinaryBlobClass b = new BinaryBlobClass(); - b.BinaryBlob = new byte[0]; + b.BinaryBlob = Array.Empty(); savedId = s.Save(b); s.Flush(); } diff --git a/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs b/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs index e0ec802bee1..d9be9a01579 100644 --- a/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs +++ b/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs @@ -84,8 +84,8 @@ public void InsertZeroLength() BinaryClass bcBinary = new BinaryClass(); bcBinary.Id = 1; - bcBinary.DefaultSize = new byte[0]; - bcBinary.WithSize = new byte[0]; + bcBinary.DefaultSize = Array.Empty(); + bcBinary.WithSize = Array.Empty(); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); diff --git a/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/AnyExtensionTests.cs b/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/AnyExtensionTests.cs index 8fce55fa569..2074c125972 100644 --- a/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/AnyExtensionTests.cs +++ b/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/AnyExtensionTests.cs @@ -13,7 +13,7 @@ public class AnyExtensionTests [Test] public void WhenEmptyListThenReturnFalse() { - Assert.That((new object[0]).Any(), Is.False); + Assert.That((Array.Empty()).Any(), Is.False); } [Test] diff --git a/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstExtensionTests.cs b/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstExtensionTests.cs index 25aec547ca4..fb1412d8d02 100644 --- a/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstExtensionTests.cs +++ b/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstExtensionTests.cs @@ -25,7 +25,7 @@ public void WhenHasElementsThenReturnFirst() [Test] public void WhenEmptyThenThrowsInvalidOperation() { - Assert.That(() => (new object[0]).First(), Throws.TypeOf()); + Assert.That(() => (Array.Empty()).First(), Throws.TypeOf()); } } } diff --git a/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstOrNullExtensionTests.cs b/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstOrNullExtensionTests.cs index 3e308db71ec..7cdfbf55a9f 100644 --- a/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstOrNullExtensionTests.cs +++ b/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstOrNullExtensionTests.cs @@ -25,7 +25,7 @@ public void WhenHasElementsThenReturnFirst() [Test] public void WhenEmptyThenReturnNull() { - Assert.That((new object[0]).FirstOrNull(), Is.Null); + Assert.That((Array.Empty()).FirstOrNull(), Is.Null); } } } diff --git a/src/NHibernate.Test/UtilityTest/ExpressionsHelperFixture.cs b/src/NHibernate.Test/UtilityTest/ExpressionsHelperFixture.cs index 8a499ed1ff1..8de97b28988 100644 --- a/src/NHibernate.Test/UtilityTest/ExpressionsHelperFixture.cs +++ b/src/NHibernate.Test/UtilityTest/ExpressionsHelperFixture.cs @@ -1,3 +1,4 @@ +using System; using NHibernate.Util; using NUnit.Framework; using System.Collections.Generic; @@ -18,7 +19,7 @@ public bool BoolProp public IEnumerable CollectionProp { - get { return new string[0]; } + get { return Array.Empty(); } } } @@ -36,4 +37,4 @@ public void DecodeMemberAccessExpression() Is.EqualTo(typeof(TestingClass).GetMember("CollectionProp")[0])); } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs b/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs index 17780c6411e..9bf172e0043 100644 --- a/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs +++ b/src/NHibernate/Async/Event/Default/DefaultFlushEntityEventListener.cs @@ -241,7 +241,7 @@ private async Task ScheduleUpdateAsync(FlushEntityEvent @event, Cancellati { throw new AssertionFailure("dirty, but no dirty properties"); } - dirtyProperties = ArrayHelper.EmptyIntArray; + dirtyProperties = Array.Empty(); } // check nullability but do not perform command execute diff --git a/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs b/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs index b52b21c19de..2df56664ab1 100644 --- a/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs +++ b/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs @@ -111,7 +111,7 @@ protected virtual async Task DropTemporaryTableIfNecessaryAsync(IQueryable persi try { var commandText = new SqlString("delete from " + persister.TemporaryIdTableName); - ps = await (session.Batcher.PrepareCommandAsync(CommandType.Text, commandText, new SqlType[0], cancellationToken)).ConfigureAwait(false); + ps = await (session.Batcher.PrepareCommandAsync(CommandType.Text, commandText, Array.Empty(), cancellationToken)).ConfigureAwait(false); await (session.Batcher.ExecuteNonQueryAsync(ps, cancellationToken)).ConfigureAwait(false); } catch (Exception t) diff --git a/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs b/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs index 3d3b269fbd4..27146fd0f95 100644 --- a/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs +++ b/src/NHibernate/Async/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs @@ -76,7 +76,7 @@ public override async Task ExecuteAsync(QueryParameters parameters, ISessio { try { - ps = await (session.Batcher.PrepareCommandAsync(CommandType.Text, deletes[i], new SqlType[0], cancellationToken)).ConfigureAwait(false); + ps = await (session.Batcher.PrepareCommandAsync(CommandType.Text, deletes[i], Array.Empty(), cancellationToken)).ConfigureAwait(false); await (session.Batcher.ExecuteNonQueryAsync(ps, cancellationToken)).ConfigureAwait(false); } finally diff --git a/src/NHibernate/Async/IMultiCriteria.cs b/src/NHibernate/Async/IMultiCriteria.cs index e0574d6e7b1..31b45dddd42 100644 --- a/src/NHibernate/Async/IMultiCriteria.cs +++ b/src/NHibernate/Async/IMultiCriteria.cs @@ -8,8 +8,10 @@ //------------------------------------------------------------------------------ +using System; using System.Collections; using NHibernate.Criterion; +using NHibernate.Impl; using NHibernate.Transform; namespace NHibernate diff --git a/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs b/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs index 788554e9d56..913844ddc20 100644 --- a/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs +++ b/src/NHibernate/Async/Persister/Entity/AbstractEntityPersister.cs @@ -858,7 +858,7 @@ public async Task UpdateAsync(object id, object[] fields, int[] dirtyFields, boo // to be updated; an empty array for the dirty fields needs to be passed to // getPropertiesToUpdate() instead of null. propsToUpdate = this.GetPropertiesToUpdate( - (dirtyFields == null ? ArrayHelper.EmptyIntArray : dirtyFields), hasDirtyCollection); + (dirtyFields == null ? Array.Empty() : dirtyFields), hasDirtyCollection); // don't need to check laziness (dirty checking algorithm handles that) updateStrings = new SqlCommandInfo[span]; diff --git a/src/NHibernate/Cache/Entry/StructuredCollectionCacheEntry.cs b/src/NHibernate/Cache/Entry/StructuredCollectionCacheEntry.cs index 63b6fd9ea82..e85c6828694 100644 --- a/src/NHibernate/Cache/Entry/StructuredCollectionCacheEntry.cs +++ b/src/NHibernate/Cache/Entry/StructuredCollectionCacheEntry.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -18,7 +19,7 @@ public virtual object Destructure(object item, ISessionFactoryImplementor factor var collection = item as IEnumerable; var objects = collection != null ? collection.Cast().ToArray() - : new object[0]; + : Array.Empty(); return new CollectionCacheEntry(objects); } } diff --git a/src/NHibernate/Cfg/Configuration.cs b/src/NHibernate/Cfg/Configuration.cs index 1ecdca22e22..8d595e94873 100644 --- a/src/NHibernate/Cfg/Configuration.cs +++ b/src/NHibernate/Cfg/Configuration.cs @@ -2310,7 +2310,7 @@ public void AppendListeners(ListenerType type, object[] listeners) private static T[] AppendListeners(T[] existing, T[] listenersToAdd) { - var list = new List(existing ?? new T[0]); + var list = new List(existing ?? Array.Empty()); list.AddRange(listenersToAdd); return list.ToArray(); } diff --git a/src/NHibernate/Cfg/MappingSchema/HbmAny.cs b/src/NHibernate/Cfg/MappingSchema/HbmAny.cs index 5c5f76edc1f..f22d61bf05d 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmAny.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmAny.cs @@ -34,7 +34,7 @@ public bool IsLazyProperty protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -76,7 +76,7 @@ public ICollection MetaValues { get { - return metavalue ?? new HbmMetaValue[0]; + return metavalue ?? Array.Empty(); } } diff --git a/src/NHibernate/Cfg/MappingSchema/HbmArray.cs b/src/NHibernate/Cfg/MappingSchema/HbmArray.cs index aceda97b908..45637cbbd28 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmArray.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmArray.cs @@ -43,7 +43,7 @@ public string Cascade protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmBag.cs b/src/NHibernate/Cfg/MappingSchema/HbmBag.cs index 563df804245..9fac439a9cf 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmBag.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmBag.cs @@ -43,7 +43,7 @@ public string Cascade protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -175,7 +175,7 @@ public bool? Generic [XmlIgnore] public IEnumerable Filters { - get { return filter ?? new HbmFilter[0]; } + get { return filter ?? Array.Empty(); } } public HbmKey Key diff --git a/src/NHibernate/Cfg/MappingSchema/HbmClass.cs b/src/NHibernate/Cfg/MappingSchema/HbmClass.cs index 4189fc4aee4..efe9cc228bd 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmClass.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmClass.cs @@ -30,32 +30,32 @@ public HbmTimestamp Timestamp [XmlIgnore] public IEnumerable Joins { - get { return Items1 != null ? Items1.OfType(): new HbmJoin[0]; } + get { return Items1 != null ? Items1.OfType(): Array.Empty(); } } [XmlIgnore] public IEnumerable Subclasses { - get { return Items1 != null ? Items1.OfType() : new HbmSubclass[0]; } + get { return Items1 != null ? Items1.OfType() : Array.Empty(); } } [XmlIgnore] public IEnumerable JoinedSubclasses { - get { return Items1 != null ? Items1.OfType() : new HbmJoinedSubclass[0]; } + get { return Items1 != null ? Items1.OfType() : Array.Empty(); } } [XmlIgnore] public IEnumerable UnionSubclasses { - get { return Items1 != null ? Items1.OfType() : new HbmUnionSubclass[0]; } + get { return Items1 != null ? Items1.OfType() : Array.Empty(); } } #region Implementation of IEntityMapping protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } public string EntityName @@ -85,7 +85,7 @@ public bool? UseLazy public HbmTuplizer[] Tuplizers { - get { return tuplizer ?? new HbmTuplizer[0]; } + get { return tuplizer ?? Array.Empty(); } } public bool DynamicUpdate @@ -120,7 +120,7 @@ public bool? IsAbstract public HbmSynchronize[] Synchronize { - get { return synchronize ?? new HbmSynchronize[0]; } + get { return synchronize ?? Array.Empty(); } } #endregion @@ -171,7 +171,7 @@ public string Subselect [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast(): new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast(): Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmComponent.cs b/src/NHibernate/Cfg/MappingSchema/HbmComponent.cs index 4431bd27cd9..44acc41d84e 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmComponent.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmComponent.cs @@ -51,7 +51,7 @@ public bool OptimisticLock [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion @@ -60,7 +60,7 @@ public IEnumerable Properties protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmCompositeElement.cs b/src/NHibernate/Cfg/MappingSchema/HbmCompositeElement.cs index 1695e3fc8fc..aac2748a7c8 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmCompositeElement.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmCompositeElement.cs @@ -35,7 +35,7 @@ public string Name protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -45,7 +45,7 @@ protected override HbmMeta[] Metadatas [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmCompositeIndex.cs b/src/NHibernate/Cfg/MappingSchema/HbmCompositeIndex.cs index 096c5e27ad9..b510ec7bf42 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmCompositeIndex.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmCompositeIndex.cs @@ -12,7 +12,7 @@ public partial class HbmCompositeIndex: IComponentMapping [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmCompositeMapKey.cs b/src/NHibernate/Cfg/MappingSchema/HbmCompositeMapKey.cs index 8c6bbe852d5..1c8af1d7a6e 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmCompositeMapKey.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmCompositeMapKey.cs @@ -12,7 +12,7 @@ public partial class HbmCompositeMapKey: IComponentMapping [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmDynamicComponent.cs b/src/NHibernate/Cfg/MappingSchema/HbmDynamicComponent.cs index 1c0d921a58e..238a755f985 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmDynamicComponent.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmDynamicComponent.cs @@ -51,7 +51,7 @@ public bool OptimisticLock [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion @@ -60,7 +60,7 @@ public IEnumerable Properties protected override HbmMeta[] Metadatas { - get { return new HbmMeta[0]; } + get { return Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmFilterDef.cs b/src/NHibernate/Cfg/MappingSchema/HbmFilterDef.cs index 61c74ca9b8b..b87a7f34c31 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmFilterDef.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmFilterDef.cs @@ -1,3 +1,5 @@ +using System; + namespace NHibernate.Cfg.MappingSchema { partial class HbmFilterDef : HbmBase @@ -9,7 +11,7 @@ public string GetDefaultCondition() public HbmFilterParam[] ListParameters() { - return Items ?? new HbmFilterParam[0]; + return Items ?? Array.Empty(); } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/MappingSchema/HbmId.cs b/src/NHibernate/Cfg/MappingSchema/HbmId.cs index c7ef2dbbc37..cb4a7476311 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmId.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmId.cs @@ -36,7 +36,7 @@ private IEnumerable AsColumns() protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmIdbag.cs b/src/NHibernate/Cfg/MappingSchema/HbmIdbag.cs index a888c8846a8..e4916d44220 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmIdbag.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmIdbag.cs @@ -43,7 +43,7 @@ public string Cascade protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -175,7 +175,7 @@ public bool? Generic [XmlIgnore] public IEnumerable Filters { - get { return filter ?? new HbmFilter[0]; } + get { return filter ?? Array.Empty(); } } public HbmKey Key diff --git a/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs b/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs index 52113fc66f2..bc39194e682 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs @@ -40,7 +40,7 @@ public string MetaType public ICollection MetaValues { - get { return new HbmMetaValue[0]; } + get { return Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmJoin.cs b/src/NHibernate/Cfg/MappingSchema/HbmJoin.cs index ff20e521dc6..0c640ac61f2 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmJoin.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmJoin.cs @@ -44,7 +44,7 @@ public string Subselect [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmJoinedSubclass.cs b/src/NHibernate/Cfg/MappingSchema/HbmJoinedSubclass.cs index ba7c4759adf..09f0d563699 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmJoinedSubclass.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmJoinedSubclass.cs @@ -10,14 +10,14 @@ public partial class HbmJoinedSubclass : AbstractDecoratable, IEntityMapping [XmlIgnore] public IEnumerable JoinedSubclasses { - get { return joinedsubclass1 ?? new HbmJoinedSubclass[0]; } + get { return joinedsubclass1 ?? Array.Empty(); } } #region Overrides of AbstractDecoratable protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -51,7 +51,7 @@ public bool? UseLazy public HbmTuplizer[] Tuplizers { - get { return tuplizer ?? new HbmTuplizer[0]; } + get { return tuplizer ?? Array.Empty(); } } public bool DynamicUpdate { @@ -85,7 +85,7 @@ public bool? IsAbstract public HbmSynchronize[] Synchronize { - get { return synchronize ?? new HbmSynchronize[0]; } + get { return synchronize ?? Array.Empty(); } } #endregion @@ -127,7 +127,7 @@ public string Subselect [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs b/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs index d50fe45fde4..f5d68ff7282 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs @@ -36,7 +36,7 @@ private IEnumerable AsColumns() protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs b/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs index 45bf3c05e02..d6bd5217f4d 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs @@ -46,7 +46,7 @@ public HbmType Type protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmList.cs b/src/NHibernate/Cfg/MappingSchema/HbmList.cs index e470455fb22..7cc199772e6 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmList.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmList.cs @@ -43,7 +43,7 @@ public string Cascade protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -189,7 +189,7 @@ public bool? Generic [XmlIgnore] public IEnumerable Filters { - get { return filter ?? new HbmFilter[0]; } + get { return filter ?? Array.Empty(); } } public HbmKey Key diff --git a/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs b/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs index c6ce9630e69..bad08a8ee94 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs @@ -43,7 +43,7 @@ public ICollection MetaValues { get { - return metavalue ?? new HbmMetaValue[0]; + return metavalue ?? Array.Empty(); } } diff --git a/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs b/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs index fd4e69d021c..d63ab705da1 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs @@ -35,7 +35,7 @@ public bool OptimisticLock protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmMap.cs b/src/NHibernate/Cfg/MappingSchema/HbmMap.cs index 76c06e7f279..1a291ec309a 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmMap.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmMap.cs @@ -43,7 +43,7 @@ public string Cascade protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -175,7 +175,7 @@ public bool? Generic [XmlIgnore] public IEnumerable Filters { - get { return filter ?? new HbmFilter[0]; } + get { return filter ?? Array.Empty(); } } public HbmKey Key diff --git a/src/NHibernate/Cfg/MappingSchema/HbmMapping.cs b/src/NHibernate/Cfg/MappingSchema/HbmMapping.cs index 77be384f319..3cf5b72f465 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmMapping.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmMapping.cs @@ -1,3 +1,4 @@ +using System; using System.Linq; namespace NHibernate.Cfg.MappingSchema @@ -6,62 +7,62 @@ partial class HbmMapping : AbstractDecoratable { public HbmDatabaseObject[] DatabaseObjects { - get { return databaseobject ?? new HbmDatabaseObject[0]; } + get { return databaseobject ?? Array.Empty(); } } public HbmFilterDef[] FilterDefinitions { - get { return filterdef ?? new HbmFilterDef[0]; } + get { return filterdef ?? Array.Empty(); } } public HbmResultSet[] ResultSets { - get { return resultset ?? new HbmResultSet[0]; } + get { return resultset ?? Array.Empty(); } } public HbmTypedef[] TypeDefinitions { - get { return typedef ?? new HbmTypedef[0]; } + get { return typedef ?? Array.Empty(); } } public HbmImport[] Imports { - get { return import ?? new HbmImport[0]; } + get { return import ?? Array.Empty(); } } protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } public HbmClass[] RootClasses { - get { return Items != null ? Items.OfType().ToArray():new HbmClass[0]; } + get { return Items != null ? Items.OfType().ToArray():Array.Empty(); } } public HbmSubclass[] SubClasses { - get { return Items != null ? Items.OfType().ToArray(): new HbmSubclass[0]; } + get { return Items != null ? Items.OfType().ToArray(): Array.Empty(); } } public HbmJoinedSubclass[] JoinedSubclasses { - get { return Items != null ? Items.OfType().ToArray(): new HbmJoinedSubclass[0]; } + get { return Items != null ? Items.OfType().ToArray(): Array.Empty(); } } public HbmUnionSubclass[] UnionSubclasses { - get { return Items != null ? Items.OfType().ToArray(): new HbmUnionSubclass[0]; } + get { return Items != null ? Items.OfType().ToArray(): Array.Empty(); } } public HbmQuery[] HqlQueries { - get { return Items1 != null ? Items1.OfType().ToArray() : new HbmQuery[0]; } + get { return Items1 != null ? Items1.OfType().ToArray() : Array.Empty(); } } public HbmSqlQuery[] SqlQueries { - get { return Items1 != null ? Items1.OfType().ToArray() : new HbmSqlQuery[0]; } + get { return Items1 != null ? Items1.OfType().ToArray() : Array.Empty(); } } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/MappingSchema/HbmNaturalId.cs b/src/NHibernate/Cfg/MappingSchema/HbmNaturalId.cs index ae07b940a49..b2023f8982b 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmNaturalId.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmNaturalId.cs @@ -12,7 +12,7 @@ public partial class HbmNaturalId: IPropertiesContainerMapping [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmNestedCompositeElement.cs b/src/NHibernate/Cfg/MappingSchema/HbmNestedCompositeElement.cs index b229b51d6eb..a941789f592 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmNestedCompositeElement.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmNestedCompositeElement.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using System.Xml.Serialization; @@ -11,7 +12,7 @@ public partial class HbmNestedCompositeElement : AbstractDecoratable, IEntityPro [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion @@ -54,7 +55,7 @@ public bool OptimisticLock protected override HbmMeta[] Metadatas { - get { return new HbmMeta[0];} + get { return Array.Empty();} } #endregion @@ -64,4 +65,4 @@ public bool IsLazyProperty get { return false; } } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs b/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs index b9bdb7dac99..c06fa7ea43c 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Xml.Serialization; @@ -28,7 +29,7 @@ public bool OptimisticLock protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -84,4 +85,4 @@ public bool IsLazyProperty get { return Lazy == HbmLaziness.Proxy; } } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/MappingSchema/HbmPrimitiveArray.cs b/src/NHibernate/Cfg/MappingSchema/HbmPrimitiveArray.cs index 92b964003c1..63cde7dbada 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmPrimitiveArray.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmPrimitiveArray.cs @@ -43,7 +43,7 @@ public string Cascade protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmProperties.cs b/src/NHibernate/Cfg/MappingSchema/HbmProperties.cs index c6a2fb2d86e..3f686b99f1c 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmProperties.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmProperties.cs @@ -51,7 +51,7 @@ public bool OptimisticLock [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion @@ -60,7 +60,7 @@ public IEnumerable Properties protected override HbmMeta[] Metadatas { - get { return new HbmMeta[0]; } + get { return Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs b/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs index 000d04daacd..3a0efaf8f02 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs @@ -35,7 +35,7 @@ public bool OptimisticLock protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmSet.cs b/src/NHibernate/Cfg/MappingSchema/HbmSet.cs index 041f2793b7c..530b8d0f537 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmSet.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmSet.cs @@ -43,7 +43,7 @@ public string Cascade protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -175,7 +175,7 @@ public bool? Generic [XmlIgnore] public IEnumerable Filters { - get { return filter ?? new HbmFilter[0]; } + get { return filter ?? Array.Empty(); } } public HbmKey Key diff --git a/src/NHibernate/Cfg/MappingSchema/HbmSubclass.cs b/src/NHibernate/Cfg/MappingSchema/HbmSubclass.cs index e82a66f80a2..9de2df4990a 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmSubclass.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmSubclass.cs @@ -10,20 +10,20 @@ public partial class HbmSubclass : AbstractDecoratable, IEntityMapping, IEntityD [XmlIgnore] public IEnumerable Joins { - get { return join ?? new HbmJoin[0]; } + get { return join ?? Array.Empty(); } } [XmlIgnore] public IEnumerable Subclasses { - get { return subclass1 ?? new HbmSubclass[0]; } + get { return subclass1 ?? Array.Empty(); } } #region Overrides of AbstractDecoratable protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -57,7 +57,7 @@ public bool? UseLazy public HbmTuplizer[] Tuplizers { - get { return tuplizer ?? new HbmTuplizer[0]; } + get { return tuplizer ?? Array.Empty(); } } public bool DynamicUpdate @@ -92,7 +92,7 @@ public bool? IsAbstract public HbmSynchronize[] Synchronize { - get { return synchronize ?? new HbmSynchronize[0]; } + get { return synchronize ?? Array.Empty(); } } #endregion @@ -140,7 +140,7 @@ public string Subselect [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmTimestamp.cs b/src/NHibernate/Cfg/MappingSchema/HbmTimestamp.cs index ea0b2585d31..feb0a3923ec 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmTimestamp.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmTimestamp.cs @@ -8,7 +8,7 @@ partial class HbmTimestamp : AbstractDecoratable, IColumnsMapping { protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #region Implementation of IColumnsMapping diff --git a/src/NHibernate/Cfg/MappingSchema/HbmUnionSubclass.cs b/src/NHibernate/Cfg/MappingSchema/HbmUnionSubclass.cs index b5142cf074e..c05d39ff156 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmUnionSubclass.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmUnionSubclass.cs @@ -10,14 +10,14 @@ public partial class HbmUnionSubclass : AbstractDecoratable, IEntityMapping [XmlIgnore] public IEnumerable UnionSubclasses { - get { return unionsubclass1 ?? new HbmUnionSubclass[0]; } + get { return unionsubclass1 ?? Array.Empty(); } } #region Overrides of AbstractDecoratable protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #endregion @@ -51,7 +51,7 @@ public bool? UseLazy public HbmTuplizer[] Tuplizers { - get { return tuplizer ?? new HbmTuplizer[0]; } + get { return tuplizer ?? Array.Empty(); } } public bool DynamicUpdate @@ -86,7 +86,7 @@ public bool? IsAbstract public HbmSynchronize[] Synchronize { - get { return synchronize ?? new HbmSynchronize[0]; } + get { return synchronize ?? Array.Empty(); } } #endregion @@ -128,7 +128,7 @@ public string Subselect [XmlIgnore] public IEnumerable Properties { - get { return Items != null ? Items.Cast() : new IEntityPropertyMapping[0]; } + get { return Items != null ? Items.Cast() : Array.Empty(); } } #endregion diff --git a/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs b/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs index 1b5495103ce..0013af1ccc6 100644 --- a/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs +++ b/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Xml.Serialization; @@ -7,7 +8,7 @@ partial class HbmVersion : AbstractDecoratable, IColumnsMapping { protected override HbmMeta[] Metadatas { - get { return meta ?? new HbmMeta[0]; } + get { return meta ?? Array.Empty(); } } #region Implementation of IColumnsMapping @@ -35,4 +36,4 @@ private IEnumerable AsColumns() } } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/XmlHbmBinding/ClassCompositeIdBinder.cs b/src/NHibernate/Cfg/XmlHbmBinding/ClassCompositeIdBinder.cs index 60b51387610..b5d71ed5456 100644 --- a/src/NHibernate/Cfg/XmlHbmBinding/ClassCompositeIdBinder.cs +++ b/src/NHibernate/Cfg/XmlHbmBinding/ClassCompositeIdBinder.cs @@ -90,7 +90,7 @@ private void BindComponent(System.Type reflectedClass, string path, HbmComposite } } - foreach (object item in idSchema.Items ?? new object[0]) + foreach (object item in idSchema.Items ?? System.Array.Empty()) { var keyManyToOneSchema = item as HbmKeyManyToOne; var keyPropertySchema = item as HbmKeyProperty; @@ -281,4 +281,4 @@ private void BindProperty(HbmKeyProperty keyPropertySchema, Property property) property.LogMapped(log); } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/XmlHbmBinding/IdGeneratorBinder.cs b/src/NHibernate/Cfg/XmlHbmBinding/IdGeneratorBinder.cs index 24fce320385..96529f99a21 100644 --- a/src/NHibernate/Cfg/XmlHbmBinding/IdGeneratorBinder.cs +++ b/src/NHibernate/Cfg/XmlHbmBinding/IdGeneratorBinder.cs @@ -52,10 +52,10 @@ private IDictionary GetGeneratorProperties(HbmGenerator generato if (mappings.PreferPooledValuesLo != null) results[Environment.PreferPooledValuesLo] = mappings.PreferPooledValuesLo; - foreach (HbmParam paramSchema in generatorMapping.param ?? new HbmParam[0]) + foreach (HbmParam paramSchema in generatorMapping.param ?? System.Array.Empty()) results[paramSchema.name] = paramSchema.GetText(); return results; } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs b/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs index 7dcd61b7c73..0a255455ba5 100644 --- a/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs +++ b/src/NHibernate/Cfg/XmlHbmBinding/MappingRootBinder.cs @@ -136,7 +136,7 @@ public void AddTypeDefs(HbmMapping mappingSchema) { string typeClass = FullQualifiedClassName(typedef.@class, mappings); string typeName = typedef.name; - IEnumerable paramIter = typedef.param ?? new HbmParam[0]; + IEnumerable paramIter = typedef.param ?? System.Array.Empty(); var parameters = new Dictionary(5); foreach (HbmParam param in paramIter) { @@ -172,4 +172,4 @@ private void AddResultSetMappingDefinitions(HbmMapping mappingSchema) } } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/XmlHbmBinding/NamedSQLQueryBinder.cs b/src/NHibernate/Cfg/XmlHbmBinding/NamedSQLQueryBinder.cs index db6f6e06b37..9779af07b0b 100644 --- a/src/NHibernate/Cfg/XmlHbmBinding/NamedSQLQueryBinder.cs +++ b/src/NHibernate/Cfg/XmlHbmBinding/NamedSQLQueryBinder.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using NHibernate.Cfg.MappingSchema; using NHibernate.Engine; @@ -61,7 +62,7 @@ private static IList GetSynchronizedTables(HbmSqlQuery querySchema) { IList synchronizedTables = new List(); - foreach (object item in querySchema.Items ?? new object[0]) + foreach (object item in querySchema.Items ?? Array.Empty()) { HbmSynchronize synchronizeSchema = item as HbmSynchronize; @@ -72,4 +73,4 @@ private static IList GetSynchronizedTables(HbmSqlQuery querySchema) return synchronizedTables; } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs b/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs index f85fd971216..f168868b621 100644 --- a/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs +++ b/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs @@ -7,6 +7,7 @@ using NHibernate.Mapping; using NHibernate.Type; using NHibernate.Util; +using Array = System.Array; namespace NHibernate.Cfg.XmlHbmBinding { @@ -32,7 +33,7 @@ private ResultSetMappingDefinition Create(string name, object[] items) ResultSetMappingDefinition definition = new ResultSetMappingDefinition(name); int count = 0; - foreach (object item in items ?? new object[0]) + foreach (object item in items ?? System.Array.Empty()) { count += 1; INativeSQLQueryReturn queryReturn = CreateQueryReturn(item, count); @@ -166,7 +167,7 @@ private IDictionary BindPropertyResults(string alias, HbmRetur List properties = new List(); List propertyNames = new List(); - foreach (HbmReturnProperty returnPropertySchema in returnProperties ?? new HbmReturnProperty[0]) + foreach (HbmReturnProperty returnPropertySchema in returnProperties ?? Array.Empty()) { string name = returnPropertySchema.name; if (pc == null || name.IndexOf('.') == -1) @@ -320,7 +321,7 @@ private static List GetResultColumns(HbmReturnProperty returnPropertySch if (column != null) allResultColumns.Add(column); - foreach (HbmReturnColumn returnColumnSchema in returnPropertySchema.returncolumn ?? new HbmReturnColumn[0]) + foreach (HbmReturnColumn returnColumnSchema in returnPropertySchema.returncolumn ?? Array.Empty()) allResultColumns.Add(Unquote(returnColumnSchema.name)); return allResultColumns; @@ -382,4 +383,4 @@ private string GetClassNameWithoutAssembly(string unqualifiedName) return TypeNameParser.Parse(unqualifiedName, mappings.DefaultNamespace, mappings.DefaultAssembly).Type; } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Criterion/AbstractEmptinessExpression.cs b/src/NHibernate/Criterion/AbstractEmptinessExpression.cs index d8d978ed662..bd0f5ed45fd 100644 --- a/src/NHibernate/Criterion/AbstractEmptinessExpression.cs +++ b/src/NHibernate/Criterion/AbstractEmptinessExpression.cs @@ -11,7 +11,7 @@ namespace NHibernate.Criterion [Serializable] public abstract class AbstractEmptinessExpression : AbstractCriterion { - private readonly TypedValue[] NO_VALUES = new TypedValue[0]; + private readonly TypedValue[] NO_VALUES = Array.Empty(); private readonly string propertyName; protected abstract bool ExcludeEmpty { get; } diff --git a/src/NHibernate/Criterion/Expression.cs b/src/NHibernate/Criterion/Expression.cs index 21f4ef6e070..2233f631313 100644 --- a/src/NHibernate/Criterion/Expression.cs +++ b/src/NHibernate/Criterion/Expression.cs @@ -1,3 +1,4 @@ +using System; using NHibernate.SqlCommand; using NHibernate.Type; using NHibernate.Util; @@ -59,7 +60,7 @@ public static AbstractCriterion Sql(string sql, object[] values, IType[] types) /// public static AbstractCriterion Sql(SqlString sql) { - return Sql(sql, ArrayHelper.EmptyObjectArray, TypeHelper.EmptyTypeArray); + return Sql(sql, Array.Empty(), TypeHelper.EmptyTypeArray); } /// @@ -69,7 +70,7 @@ public static AbstractCriterion Sql(SqlString sql) /// public static AbstractCriterion Sql(string sql) { - return Sql(sql, ArrayHelper.EmptyObjectArray, TypeHelper.EmptyTypeArray); + return Sql(sql, Array.Empty(), TypeHelper.EmptyTypeArray); } } } diff --git a/src/NHibernate/Criterion/NotNullExpression.cs b/src/NHibernate/Criterion/NotNullExpression.cs index 38bea97346d..f08fc7bdd30 100644 --- a/src/NHibernate/Criterion/NotNullExpression.cs +++ b/src/NHibernate/Criterion/NotNullExpression.cs @@ -22,7 +22,7 @@ public NotNullExpression(IProjection projection) _projection = projection; } - private static readonly TypedValue[] NoValues = new TypedValue[0]; + private static readonly TypedValue[] NoValues = Array.Empty(); /// /// Initialize a new instance of the class for a named diff --git a/src/NHibernate/Criterion/NullExpression.cs b/src/NHibernate/Criterion/NullExpression.cs index 1c073f49694..cbd0a955575 100644 --- a/src/NHibernate/Criterion/NullExpression.cs +++ b/src/NHibernate/Criterion/NullExpression.cs @@ -12,7 +12,7 @@ public class NullExpression : AbstractCriterion { private readonly string _propertyName; private readonly IProjection _projection; - private static readonly TypedValue[] NoValues = new TypedValue[0]; + private static readonly TypedValue[] NoValues = Array.Empty(); /// /// Initializes a new instance of the class. diff --git a/src/NHibernate/Criterion/Order.cs b/src/NHibernate/Criterion/Order.cs index 83ac468d375..6f1e466a0e7 100644 --- a/src/NHibernate/Criterion/Order.cs +++ b/src/NHibernate/Criterion/Order.cs @@ -130,7 +130,7 @@ public TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQu if (projection != null) return projection.GetTypedValues(criteria, criteriaQuery); - return new TypedValue[0]; // not using parameters for ORDER BY columns + return Array.Empty(); // not using parameters for ORDER BY columns } public Order IgnoreCase() diff --git a/src/NHibernate/Criterion/PropertyExpression.cs b/src/NHibernate/Criterion/PropertyExpression.cs index d7db44e7ee7..5453b982c75 100644 --- a/src/NHibernate/Criterion/PropertyExpression.cs +++ b/src/NHibernate/Criterion/PropertyExpression.cs @@ -13,7 +13,7 @@ namespace NHibernate.Criterion [Serializable] public abstract class PropertyExpression : AbstractCriterion { - private static readonly TypedValue[] NoTypedValues = new TypedValue[0]; + private static readonly TypedValue[] NoTypedValues = Array.Empty(); private readonly string _lhsPropertyName; private readonly string _rhsPropertyName; private readonly IProjection _lhsProjection; diff --git a/src/NHibernate/Criterion/SQLProjection.cs b/src/NHibernate/Criterion/SQLProjection.cs index bb257490dc5..72359e00a83 100644 --- a/src/NHibernate/Criterion/SQLProjection.cs +++ b/src/NHibernate/Criterion/SQLProjection.cs @@ -81,7 +81,7 @@ public bool IsAggregate /// public TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQuery) { - return new TypedValue[0]; + return Array.Empty(); } public IType[] GetTypes(string alias, ICriteria crit, ICriteriaQuery criteriaQuery) diff --git a/src/NHibernate/Criterion/SimpleProjection.cs b/src/NHibernate/Criterion/SimpleProjection.cs index 3521d5b7476..9304c4c4222 100644 --- a/src/NHibernate/Criterion/SimpleProjection.cs +++ b/src/NHibernate/Criterion/SimpleProjection.cs @@ -67,7 +67,7 @@ public virtual string[] Aliases /// public virtual TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQuery) { - return new TypedValue[0]; + return Array.Empty(); } public abstract SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery); diff --git a/src/NHibernate/Driver/FirebirdClientDriver.cs b/src/NHibernate/Driver/FirebirdClientDriver.cs index 751dbd1630c..81eb9c241ee 100644 --- a/src/NHibernate/Driver/FirebirdClientDriver.cs +++ b/src/NHibernate/Driver/FirebirdClientDriver.cs @@ -160,7 +160,7 @@ public void ClearPool(string connectionString) return; } - _clearAllPools.Invoke(null, new object[0]); + _clearAllPools.Invoke(null, Array.Empty()); } /// diff --git a/src/NHibernate/Engine/QueryParameters.cs b/src/NHibernate/Engine/QueryParameters.cs index 6af67a3d685..9417b0b2346 100644 --- a/src/NHibernate/Engine/QueryParameters.cs +++ b/src/NHibernate/Engine/QueryParameters.cs @@ -21,7 +21,7 @@ public sealed class QueryParameters private bool readOnly; - public QueryParameters() : this(TypeHelper.EmptyTypeArray, ArrayHelper.EmptyObjectArray) {} + public QueryParameters() : this(TypeHelper.EmptyTypeArray, Array.Empty()) {} public QueryParameters(IType[] positionalParameterTypes, object[] postionalParameterValues, object optionalObject, string optionalEntityName, object optionalObjectId) : this(positionalParameterTypes, postionalParameterValues) @@ -50,7 +50,7 @@ public QueryParameters(IType[] positionalParameterTypes, object[] positionalPara public QueryParameters(IDictionary namedParameters, IDictionary lockModes, RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, bool isLookupByNaturalKey, IResultTransformer transformer) : this( - TypeHelper.EmptyTypeArray, ArrayHelper.EmptyObjectArray, namedParameters, lockModes, rowSelection, isReadOnlyInitialized, readOnly, cacheable, cacheRegion, comment, null, + TypeHelper.EmptyTypeArray, Array.Empty(), namedParameters, lockModes, rowSelection, isReadOnlyInitialized, readOnly, cacheable, cacheRegion, comment, null, transformer) { // used by CriteriaTranslator @@ -61,8 +61,8 @@ public QueryParameters(IType[] positionalParameterTypes, object[] positionalPara IDictionary lockModes, RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, object[] collectionKeys, IResultTransformer transformer) { - PositionalParameterTypes = positionalParameterTypes ?? new IType[0]; - PositionalParameterValues = positionalParameterValues ?? new object[0]; + PositionalParameterTypes = positionalParameterTypes ?? Array.Empty(); + PositionalParameterValues = positionalParameterValues ?? Array.Empty(); NamedParameters = namedParameters ?? new Dictionary(1); LockModes = lockModes; RowSelection = rowSelection; diff --git a/src/NHibernate/Engine/UnsavedValueFactory.cs b/src/NHibernate/Engine/UnsavedValueFactory.cs index 1f9b3cfed4c..38735c85dc4 100644 --- a/src/NHibernate/Engine/UnsavedValueFactory.cs +++ b/src/NHibernate/Engine/UnsavedValueFactory.cs @@ -7,7 +7,7 @@ namespace NHibernate.Engine { public static class UnsavedValueFactory { - private static readonly object[] NoParameters = new object[0]; + private static readonly object[] NoParameters = Array.Empty(); private static object Instantiate(ConstructorInfo constructor) { diff --git a/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs b/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs index 43ad4f10064..28b4654ebbf 100644 --- a/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs +++ b/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs @@ -258,7 +258,7 @@ private bool ScheduleUpdate(FlushEntityEvent @event) { throw new AssertionFailure("dirty, but no dirty properties"); } - dirtyProperties = ArrayHelper.EmptyIntArray; + dirtyProperties = Array.Empty(); } // check nullability but do not perform command execute diff --git a/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs b/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs index 10954da9925..a45819d7c6c 100644 --- a/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs +++ b/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs @@ -197,7 +197,7 @@ protected virtual void DropTemporaryTableIfNecessary(IQueryable persister, ISess try { var commandText = new SqlString("delete from " + persister.TemporaryIdTableName); - ps = session.Batcher.PrepareCommand(CommandType.Text, commandText, new SqlType[0]); + ps = session.Batcher.PrepareCommand(CommandType.Text, commandText, Array.Empty()); session.Batcher.ExecuteNonQuery(ps); } catch (Exception t) diff --git a/src/NHibernate/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs b/src/NHibernate/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs index 35c5390d856..50c3cb3c93e 100644 --- a/src/NHibernate/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs +++ b/src/NHibernate/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs @@ -113,7 +113,7 @@ public override int Execute(QueryParameters parameters, ISessionImplementor sess { try { - ps = session.Batcher.PrepareCommand(CommandType.Text, deletes[i], new SqlType[0]); + ps = session.Batcher.PrepareCommand(CommandType.Text, deletes[i], Array.Empty()); session.Batcher.ExecuteNonQuery(ps); } finally diff --git a/src/NHibernate/Hql/Ast/ANTLR/Tree/AssignmentSpecification.cs b/src/NHibernate/Hql/Ast/ANTLR/Tree/AssignmentSpecification.cs index a56beb0a545..932d95aaaaf 100644 --- a/src/NHibernate/Hql/Ast/ANTLR/Tree/AssignmentSpecification.cs +++ b/src/NHibernate/Hql/Ast/ANTLR/Tree/AssignmentSpecification.cs @@ -67,7 +67,7 @@ public AssignmentSpecification(IASTNode eq, IQueryable persister) if (rhs == null) { - _hqlParameters = new IParameterSpecification[0]; + _hqlParameters = Array.Empty(); } else if (IsParam(rhs)) { diff --git a/src/NHibernate/Impl/ExpressionProcessor.cs b/src/NHibernate/Impl/ExpressionProcessor.cs index f55ea8222c9..8fdb12af7a3 100644 --- a/src/NHibernate/Impl/ExpressionProcessor.cs +++ b/src/NHibernate/Impl/ExpressionProcessor.cs @@ -153,7 +153,7 @@ static ExpressionProcessor() RegisterCustomMethodCall(() => RestrictionExtensions.IsLike("", "", null, null), RestrictionExtensions.ProcessIsLikeMatchModeEscapeChar); RegisterCustomMethodCall(() => RestrictionExtensions.IsInsensitiveLike("", ""), RestrictionExtensions.ProcessIsInsensitiveLike); RegisterCustomMethodCall(() => RestrictionExtensions.IsInsensitiveLike("", "", null), RestrictionExtensions.ProcessIsInsensitiveLikeMatchMode); - RegisterCustomMethodCall(() => RestrictionExtensions.IsIn(null, new object[0]), RestrictionExtensions.ProcessIsInArray); + RegisterCustomMethodCall(() => RestrictionExtensions.IsIn(null, Array.Empty()), RestrictionExtensions.ProcessIsInArray); RegisterCustomMethodCall(() => RestrictionExtensions.IsIn(null, new List()), RestrictionExtensions.ProcessIsInCollection); RegisterCustomMethodCall(() => RestrictionExtensions.IsBetween(null, null).And(null), RestrictionExtensions.ProcessIsBetween); diff --git a/src/NHibernate/Impl/SessionImpl.cs b/src/NHibernate/Impl/SessionImpl.cs index f417e192012..5fe1c1c718a 100644 --- a/src/NHibernate/Impl/SessionImpl.cs +++ b/src/NHibernate/Impl/SessionImpl.cs @@ -515,8 +515,8 @@ public void Update(object obj, object id) } } - private static readonly object[] NoArgs = new object[0]; - private static readonly IType[] NoTypes = new IType[0]; + private static readonly object[] NoArgs = Array.Empty(); + private static readonly IType[] NoTypes = Array.Empty(); IList Find(string query, object[] values, IType[] types) { diff --git a/src/NHibernate/Linq/Clauses/NhJoinClause.cs b/src/NHibernate/Linq/Clauses/NhJoinClause.cs index 9257c15e2a2..d68926f88b3 100644 --- a/src/NHibernate/Linq/Clauses/NhJoinClause.cs +++ b/src/NHibernate/Linq/Clauses/NhJoinClause.cs @@ -22,7 +22,7 @@ public class NhJoinClause : NhClauseBase, IFromClause, IBodyClause System.Type _itemType; public NhJoinClause(string itemName, System.Type itemType, Expression fromExpression) - : this(itemName, itemType, fromExpression, new NhWithClause[0]) + : this(itemName, itemType, fromExpression, Array.Empty()) { } diff --git a/src/NHibernate/Loader/AbstractEntityJoinWalker.cs b/src/NHibernate/Loader/AbstractEntityJoinWalker.cs index 96123b59e40..1ad5ce5cc19 100644 --- a/src/NHibernate/Loader/AbstractEntityJoinWalker.cs +++ b/src/NHibernate/Loader/AbstractEntityJoinWalker.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using NHibernate.Engine; using NHibernate.Loader.Criteria; @@ -42,7 +43,7 @@ protected virtual void InitAll(SqlString whereString, SqlString orderByString, L protected void InitProjection(SqlString projectionString, SqlString whereString, SqlString orderByString, SqlString groupByString, SqlString havingString, IDictionary enabledFilters, LockMode lockMode) { WalkEntityTree(persister, Alias); - Persisters = new ILoadable[0]; + Persisters = Array.Empty(); InitStatementString(projectionString, whereString, orderByString, groupByString, havingString, lockMode); } diff --git a/src/NHibernate/Mapping/ByCode/Impl/AnyMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/AnyMapper.cs index e09865baa61..233d92f3928 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/AnyMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/AnyMapper.cs @@ -144,7 +144,7 @@ public void MetaValue(object value, System.Type entityType) System.Type metavalueType = value.GetType(); if (any.metavalue == null) { - any.metavalue = new HbmMetaValue[0]; + any.metavalue = System.Array.Empty(); } Dictionary values = any.metavalue.ToDictionary(mv => mv.value, mv => mv.@class); MetaType(metavalueType); @@ -205,4 +205,4 @@ private void CheckIdTypeImmutability(string nhTypeName) #endregion } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/ManyToAnyMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/ManyToAnyMapper.cs index 486c502f057..8fad148094e 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/ManyToAnyMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/ManyToAnyMapper.cs @@ -119,7 +119,7 @@ public void MetaValue(object value, System.Type entityType) System.Type metavalueType = value.GetType(); if (manyToAny.metavalue == null) { - manyToAny.metavalue = new HbmMetaValue[0]; + manyToAny.metavalue = System.Array.Empty(); } Dictionary values = manyToAny.metavalue.ToDictionary(mv => mv.value, mv => mv.@class); MetaType(metavalueType); @@ -153,4 +153,4 @@ private void CheckIdTypeImmutability(string nhTypeName) } } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Import.cs b/src/NHibernate/Mapping/ByCode/Import.cs index 2e336dfa962..48a2b9935a1 100644 --- a/src/NHibernate/Mapping/ByCode/Import.cs +++ b/src/NHibernate/Mapping/ByCode/Import.cs @@ -25,7 +25,7 @@ public void AddToMapping(HbmMapping hbmMapping) rename = this.rename }; - var existingImports = hbmMapping.import ?? new HbmImport[0]; + var existingImports = hbmMapping.import ?? System.Array.Empty(); hbmMapping.import = existingImports.Concat(new [] { hbmImport }).ToArray(); } diff --git a/src/NHibernate/Mapping/ByCode/TypeExtensions.cs b/src/NHibernate/Mapping/ByCode/TypeExtensions.cs index 89dd4a6a29d..1ae4317af22 100644 --- a/src/NHibernate/Mapping/ByCode/TypeExtensions.cs +++ b/src/NHibernate/Mapping/ByCode/TypeExtensions.cs @@ -103,7 +103,7 @@ public static MemberInfo DecodeMemberAccessExpressionOf(Expr var propertyInfo = memberOfDeclaringType as PropertyInfo; if (propertyInfo != null) { - return typeof (TEntity).GetProperty(propertyInfo.Name, PropertiesOfClassHierarchy, null, propertyInfo.PropertyType, new System.Type[0], null); + return typeof (TEntity).GetProperty(propertyInfo.Name, PropertiesOfClassHierarchy, null, propertyInfo.PropertyType, System.Type.EmptyTypes, null); } if (memberOfDeclaringType is FieldInfo) { @@ -553,4 +553,4 @@ private static IEnumerable GetUserDeclaredFields(System.Type type) return type.GetFields(PropertiesOrFieldOfClass).Where(x => !x.Name.StartsWith("<")); } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/Collection.cs b/src/NHibernate/Mapping/Collection.cs index c6bc98f7e3f..49677325626 100644 --- a/src/NHibernate/Mapping/Collection.cs +++ b/src/NHibernate/Mapping/Collection.cs @@ -19,7 +19,7 @@ namespace NHibernate.Mapping [Serializable] public abstract class Collection : IFetchable, IValue, IFilterable { - private static readonly IEnumerable EmptyColumns = new ISelectable[0]; + private static readonly IEnumerable EmptyColumns = System.Array.Empty(); public const string DefaultElementColumnName = "elt"; public const string DefaultKeyColumnName = "id"; @@ -398,12 +398,12 @@ public virtual void Validate(IMapping mapping) public bool[] ColumnInsertability { - get { return ArrayHelper.EmptyBoolArray; } + get { return System.Array.Empty(); } } public bool[] ColumnUpdateability { - get { return ArrayHelper.EmptyBoolArray; } + get { return System.Array.Empty(); } } public string TypeName diff --git a/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs b/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs index 2bdbc345cd2..d33555c5b93 100644 --- a/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs +++ b/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs @@ -3031,7 +3031,7 @@ public void Update(object id, object[] fields, int[] dirtyFields, bool hasDirtyC // to be updated; an empty array for the dirty fields needs to be passed to // getPropertiesToUpdate() instead of null. propsToUpdate = this.GetPropertiesToUpdate( - (dirtyFields == null ? ArrayHelper.EmptyIntArray : dirtyFields), hasDirtyCollection); + (dirtyFields == null ? Array.Empty() : dirtyFields), hasDirtyCollection); // don't need to check laziness (dirty checking algorithm handles that) updateStrings = new SqlCommandInfo[span]; diff --git a/src/NHibernate/Properties/BasicPropertyAccessor.cs b/src/NHibernate/Properties/BasicPropertyAccessor.cs index 8086675c81b..18399171f31 100644 --- a/src/NHibernate/Properties/BasicPropertyAccessor.cs +++ b/src/NHibernate/Properties/BasicPropertyAccessor.cs @@ -196,7 +196,7 @@ public object Get(object target) { try { - return property.GetValue(target, new object[0]); + return property.GetValue(target, Array.Empty()); } catch (Exception e) { @@ -293,7 +293,7 @@ public void Set(object target, object value) { try { - property.SetValue(target, value, new object[0]); + property.SetValue(target, value, Array.Empty()); } catch (ArgumentException ae) { diff --git a/src/NHibernate/Proxy/DynamicProxy/DefaultArgumentHandler.cs b/src/NHibernate/Proxy/DynamicProxy/DefaultArgumentHandler.cs index 363fa31eaac..40a7f9e3b00 100644 --- a/src/NHibernate/Proxy/DynamicProxy/DefaultArgumentHandler.cs +++ b/src/NHibernate/Proxy/DynamicProxy/DefaultArgumentHandler.cs @@ -18,7 +18,7 @@ internal class DefaultArgumentHandler : IArgumentHandler public void PushArguments(ParameterInfo[] methodParameters, ILGenerator IL, bool isStatic) { - ParameterInfo[] parameters = methodParameters ?? new ParameterInfo[0]; + ParameterInfo[] parameters = methodParameters ?? Array.Empty(); int parameterCount = parameters.Length; // object[] args = new object[size]; diff --git a/src/NHibernate/Proxy/DynamicProxy/ProxyFactory.cs b/src/NHibernate/Proxy/DynamicProxy/ProxyFactory.cs index a40adbb80bc..1865190f182 100644 --- a/src/NHibernate/Proxy/DynamicProxy/ProxyFactory.cs +++ b/src/NHibernate/Proxy/DynamicProxy/ProxyFactory.cs @@ -21,7 +21,7 @@ public sealed class ProxyFactory { internal static readonly ConcurrentDictionary _cache = new ConcurrentDictionary(); - private static readonly ConstructorInfo defaultBaseConstructor = typeof(object).GetConstructor(new System.Type[0]); + private static readonly ConstructorInfo defaultBaseConstructor = typeof(object).GetConstructor(System.Type.EmptyTypes); private static readonly MethodInfo getValue = ReflectHelper.GetMethod( si => si.GetValue(null, null)); @@ -146,9 +146,9 @@ private static ConstructorBuilder DefineConstructor(TypeBuilder typeBuilder, Sys MethodAttributes.RTSpecialName; ConstructorBuilder constructor = - typeBuilder.DefineConstructor(constructorAttributes, CallingConventions.Standard, new System.Type[0]); + typeBuilder.DefineConstructor(constructorAttributes, CallingConventions.Standard, System.Type.EmptyTypes); - var baseConstructor = parentType.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, new System.Type[0], null); + var baseConstructor = parentType.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, System.Type.EmptyTypes, null); // if there is no default constructor, or the default constructor is private/internal, call System.Object constructor // this works, but the generated assembly will fail PeVerify (cannot use in medium trust for example) @@ -256,8 +256,8 @@ private static void DefineSerializationConstructor(TypeBuilder typeBuilder, Fiel private static void AddSerializationSupport(System.Type baseType, IReadOnlyCollection baseInterfaces, TypeBuilder typeBuilder, FieldInfo interceptorField, ConstructorBuilder defaultConstructor) { - ConstructorInfo serializableConstructor = typeof(SerializableAttribute).GetConstructor(new System.Type[0]); - var customAttributeBuilder = new CustomAttributeBuilder(serializableConstructor, new object[0]); + ConstructorInfo serializableConstructor = typeof(SerializableAttribute).GetConstructor(System.Type.EmptyTypes); + var customAttributeBuilder = new CustomAttributeBuilder(serializableConstructor, Array.Empty()); typeBuilder.SetCustomAttribute(customAttributeBuilder); DefineSerializationConstructor(typeBuilder, interceptorField, defaultConstructor); diff --git a/src/NHibernate/Proxy/DynamicProxy/ProxyImplementor.cs b/src/NHibernate/Proxy/DynamicProxy/ProxyImplementor.cs index e97f2426354..bc486aee83d 100644 --- a/src/NHibernate/Proxy/DynamicProxy/ProxyImplementor.cs +++ b/src/NHibernate/Proxy/DynamicProxy/ProxyImplementor.cs @@ -36,7 +36,7 @@ public void ImplementProxy(TypeBuilder typeBuilder) field = typeBuilder.DefineField("__interceptor", typeof (IInterceptor), FieldAttributes.Private); // Implement the getter - MethodBuilder getterMethod = typeBuilder.DefineMethod("get_Interceptor", InterceptorMethodsAttributes, CallingConventions.HasThis, typeof(IInterceptor), new System.Type[0]); + MethodBuilder getterMethod = typeBuilder.DefineMethod("get_Interceptor", InterceptorMethodsAttributes, CallingConventions.HasThis, typeof(IInterceptor), System.Type.EmptyTypes); getterMethod.SetImplementationFlags(MethodImplAttributes.Managed | MethodImplAttributes.IL); ILGenerator IL = getterMethod.GetILGenerator(); @@ -61,4 +61,4 @@ public void ImplementProxy(TypeBuilder typeBuilder) typeBuilder.DefineMethodOverride(getterMethod, OriginalGetter); } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Proxy/NHibernateProxyBuilder.cs b/src/NHibernate/Proxy/NHibernateProxyBuilder.cs index bd3613c725a..8502d950b33 100644 --- a/src/NHibernate/Proxy/NHibernateProxyBuilder.cs +++ b/src/NHibernate/Proxy/NHibernateProxyBuilder.cs @@ -90,7 +90,7 @@ public TypeInfo CreateProxyType(System.Type baseType, IReadOnlyCollection()); typeBuilder.SetCustomAttribute(customAttributeBuilder); ImplementDeserializationConstructor(typeBuilder); diff --git a/src/NHibernate/SqlCommand/BackTrackCacheParameterList.cs b/src/NHibernate/SqlCommand/BackTrackCacheParameterList.cs index 7a2f0451f41..595123e452f 100644 --- a/src/NHibernate/SqlCommand/BackTrackCacheParameterList.cs +++ b/src/NHibernate/SqlCommand/BackTrackCacheParameterList.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Collections.ObjectModel; using NHibernate.Util; @@ -98,7 +99,7 @@ public IEnumerable GetEffectiveParameterLocations(string backTrace) if (_indexesByBackTrace.TryGetValue(backTrace, out indexes)) return indexes; } - return ArrayHelper.EmptyIntArray; + return Array.Empty(); } } } \ No newline at end of file diff --git a/src/NHibernate/SqlTypes/SqlTypeFactory.cs b/src/NHibernate/SqlTypes/SqlTypeFactory.cs index 20e9ed75270..23983c57a53 100644 --- a/src/NHibernate/SqlTypes/SqlTypeFactory.cs +++ b/src/NHibernate/SqlTypes/SqlTypeFactory.cs @@ -36,7 +36,7 @@ public static class SqlTypeFactory public static readonly SqlType UInt32 = new SqlType(DbType.UInt32); public static readonly SqlType UInt64 = new SqlType(DbType.UInt64); - public static readonly SqlType[] NoTypes = new SqlType[0]; + public static readonly SqlType[] NoTypes = Array.Empty(); private delegate T TypeWithLenOrScaleCreateDelegate(TDim lengthOrScale); // Func diff --git a/src/NHibernate/Type/CollectionType.cs b/src/NHibernate/Type/CollectionType.cs index 3d8285532a3..29ce74db6d9 100644 --- a/src/NHibernate/Type/CollectionType.cs +++ b/src/NHibernate/Type/CollectionType.cs @@ -537,7 +537,7 @@ public string GetOnCondition(string alias, ISessionFactoryImplementor factory, I public override bool[] ToColumnNullness(object value, IMapping mapping) { - return ArrayHelper.EmptyBoolArray; + return Array.Empty(); } public override int Compare(object x, object y) diff --git a/src/NHibernate/Type/DbTimestampType.cs b/src/NHibernate/Type/DbTimestampType.cs index 0fe280fed1c..3fc4e112bae 100644 --- a/src/NHibernate/Type/DbTimestampType.cs +++ b/src/NHibernate/Type/DbTimestampType.cs @@ -17,7 +17,7 @@ namespace NHibernate.Type public partial class DbTimestampType : AbstractDateTimeType { private static readonly INHibernateLogger log = NHibernateLogger.For(typeof(DbTimestampType)); - private static readonly SqlType[] EmptyParams = new SqlType[0]; + private static readonly SqlType[] EmptyParams = Array.Empty(); /// public override string Name => "DbTimestamp"; diff --git a/src/NHibernate/Type/OneToOneType.cs b/src/NHibernate/Type/OneToOneType.cs index c903be941fe..1575629351b 100644 --- a/src/NHibernate/Type/OneToOneType.cs +++ b/src/NHibernate/Type/OneToOneType.cs @@ -13,7 +13,7 @@ namespace NHibernate.Type [Serializable] public partial class OneToOneType : EntityType, IAssociationType { - private static readonly SqlType[] NoSqlTypes = new SqlType[0]; + private static readonly SqlType[] NoSqlTypes = Array.Empty(); private readonly ForeignKeyDirection foreignKeyDirection; private readonly string propertyName; @@ -151,7 +151,7 @@ public override string PropertyName public override bool[] ToColumnNullness(object value, IMapping mapping) { - return ArrayHelper.EmptyBoolArray; + return Array.Empty(); } } } diff --git a/src/NHibernate/Type/TypeFactory.cs b/src/NHibernate/Type/TypeFactory.cs index f7972227640..da1166f8dd2 100644 --- a/src/NHibernate/Type/TypeFactory.cs +++ b/src/NHibernate/Type/TypeFactory.cs @@ -34,7 +34,7 @@ private enum TypeClassification } private static readonly INHibernateLogger _log = NHibernateLogger.For(typeof(TypeFactory)); - private static readonly string[] EmptyAliases= new string[0]; + private static readonly string[] EmptyAliases= System.Array.Empty(); private static readonly char[] PrecisionScaleSplit = new[] { '(', ')', ',' }; private static readonly char[] LengthSplit = new[] { '(', ')' }; private static readonly TypeFactory Instance; diff --git a/src/NHibernate/Type/TypeHelper.cs b/src/NHibernate/Type/TypeHelper.cs index 3e11b6f6e7d..dfb5c38d2ca 100644 --- a/src/NHibernate/Type/TypeHelper.cs +++ b/src/NHibernate/Type/TypeHelper.cs @@ -12,7 +12,7 @@ namespace NHibernate.Type /// public static partial class TypeHelper { - public static readonly IType[] EmptyTypeArray = new IType[0]; + public static readonly IType[] EmptyTypeArray = Array.Empty(); /// Deep copy a series of values from one array to another /// The values to copy (the source) diff --git a/src/NHibernate/Util/ArrayHelper.cs b/src/NHibernate/Util/ArrayHelper.cs index 8bab75868bd..531dd33a599 100644 --- a/src/NHibernate/Util/ArrayHelper.cs +++ b/src/NHibernate/Util/ArrayHelper.cs @@ -13,9 +13,15 @@ namespace NHibernate.Util /// public static class ArrayHelper { - public static readonly object[] EmptyObjectArray = new object[0]; - public static readonly int[] EmptyIntArray = new int[0]; - public static readonly bool[] EmptyBoolArray = new bool[0]; + //Since v5.1 + [Obsolete("Please use System.Array.Empty() instead")] + public static object[] EmptyObjectArray => Array.Empty(); + //Since v5.1 + [Obsolete("Please use System.Array.Empty() instead")] + public static int[] EmptyIntArray => Array.Empty(); + //Since v5.1 + [Obsolete("Please use System.Array.Empty() instead")] + public static bool[] EmptyBoolArray => Array.Empty(); public static readonly bool[] True = new bool[] { true }; public static readonly bool[] False = new bool[] { false }; diff --git a/src/NHibernate/Util/CollectionHelper.cs b/src/NHibernate/Util/CollectionHelper.cs index c8075f02dca..17684ae21b2 100644 --- a/src/NHibernate/Util/CollectionHelper.cs +++ b/src/NHibernate/Util/CollectionHelper.cs @@ -512,12 +512,12 @@ public TValue this[TKey key] public ICollection Keys { - get { return new List(); } + get { return Array.Empty(); } } public ICollection Values { - get { return new List(); } + get { return Array.Empty(); } } #endregion From 20091aae1ed98b6eb105f35151e12dacbbb66d90 Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Sat, 16 Dec 2017 01:02:35 +1300 Subject: [PATCH 2/2] Catch more empty types --- .../Async/Component/Basic/ComponentTest.cs | 2 +- .../TransactionNotificationFixture.cs | 5 +- .../Component/Basic/ComponentTest.cs | 2 +- .../Criteria/DetachedCriteriaSerializable.cs | 4 +- .../QueryTest/DetachedQueryFixture.cs | 6 +- .../QueryTest/QueryParametersFixture.cs | 5 +- .../TransactionNotificationFixture.cs | 7 +- .../TransactionNotificationFixture.cs | 5 +- src/NHibernate/Cfg/Configuration.cs | 68 +++++++++---------- src/NHibernate/Criterion/GroupedProjection.cs | 2 +- src/NHibernate/Event/EventListeners.cs | 30 ++++---- .../Hql/Ast/ANTLR/Tree/ConstructorNode.cs | 2 +- src/NHibernate/Util/ReflectHelper.cs | 2 +- 13 files changed, 72 insertions(+), 68 deletions(-) diff --git a/src/NHibernate.Test/Async/Component/Basic/ComponentTest.cs b/src/NHibernate.Test/Async/Component/Basic/ComponentTest.cs index 362bf474d27..74c9d174485 100644 --- a/src/NHibernate.Test/Async/Component/Basic/ComponentTest.cs +++ b/src/NHibernate.Test/Async/Component/Basic/ComponentTest.cs @@ -32,7 +32,7 @@ protected override string MappingsAssembly protected override System.Collections.IList Mappings { - get { return new string[] { }; } + get { return Array.Empty(); } } protected override void Configure(Configuration configuration) diff --git a/src/NHibernate.Test/Async/TransactionTest/TransactionNotificationFixture.cs b/src/NHibernate.Test/Async/TransactionTest/TransactionNotificationFixture.cs index 6b2c82e3d2a..e52a03d96ed 100644 --- a/src/NHibernate.Test/Async/TransactionTest/TransactionNotificationFixture.cs +++ b/src/NHibernate.Test/Async/TransactionTest/TransactionNotificationFixture.cs @@ -8,6 +8,7 @@ //------------------------------------------------------------------------------ +using System; using System.Collections; using System.Data.Common; using NUnit.Framework; @@ -21,7 +22,7 @@ public class TransactionNotificationFixtureAsync : TestCase { protected override IList Mappings { - get { return new string[] {}; } + get { return Array.Empty(); } } [Test] @@ -99,4 +100,4 @@ public async Task ShouldNotifyAfterTransactionWithOwnConnectionAsync(bool usePre Assert.That(interceptor.afterTransactionCompletionCalled, Is.EqualTo(1)); } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/Component/Basic/ComponentTest.cs b/src/NHibernate.Test/Component/Basic/ComponentTest.cs index 744b9986171..d22a7708a97 100644 --- a/src/NHibernate.Test/Component/Basic/ComponentTest.cs +++ b/src/NHibernate.Test/Component/Basic/ComponentTest.cs @@ -21,7 +21,7 @@ protected override string MappingsAssembly protected override System.Collections.IList Mappings { - get { return new string[] { }; } + get { return Array.Empty(); } } protected override void Configure(Configuration configuration) diff --git a/src/NHibernate.Test/Criteria/DetachedCriteriaSerializable.cs b/src/NHibernate.Test/Criteria/DetachedCriteriaSerializable.cs index 5dd24384c69..9dff8ab8bbd 100644 --- a/src/NHibernate.Test/Criteria/DetachedCriteriaSerializable.cs +++ b/src/NHibernate.Test/Criteria/DetachedCriteriaSerializable.cs @@ -286,7 +286,7 @@ public void ResultTransformes() IResultTransformer rt = new RootEntityResultTransformer(); NHAssert.IsSerializable(rt); - rt = new AliasToBeanConstructorResultTransformer(typeof(StudentDTO).GetConstructor(new System.Type[] { })); + rt = new AliasToBeanConstructorResultTransformer(typeof(StudentDTO).GetConstructor(System.Type.EmptyTypes)); NHAssert.IsSerializable(rt); rt = new AliasToBeanResultTransformer(typeof(StudentDTO)); @@ -424,4 +424,4 @@ public void ExecutableCriteria() SerializeAndList(dc); } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/QueryTest/DetachedQueryFixture.cs b/src/NHibernate.Test/QueryTest/DetachedQueryFixture.cs index 32ab71aa270..b137f1d0145 100644 --- a/src/NHibernate.Test/QueryTest/DetachedQueryFixture.cs +++ b/src/NHibernate.Test/QueryTest/DetachedQueryFixture.cs @@ -82,7 +82,7 @@ public void PropertiesSet() Assert.IsTrue(tdq.OptionalUntypeParams[1].Equals(new Foo("Fulano", "De Tal"))); tdq.SetAnsiString(1, ""); - tdq.SetBinary(2, new byte[] { }); + tdq.SetBinary(2, Array.Empty()); tdq.SetBoolean(3, false); tdq.SetByte(4, 255); tdq.SetCharacter(5, 'A'); @@ -119,7 +119,7 @@ public void PropertiesSet() Assert.IsTrue(tdq.PosParams[18].Type.Equals(NHibernateUtil.Guid)); tdq.SetAnsiString("1", ""); - tdq.SetBinary("2", new byte[] { }); + tdq.SetBinary("2", Array.Empty()); tdq.SetBoolean("3", false); tdq.SetByte("4", 255); tdq.SetCharacter("5", 'A'); @@ -181,7 +181,7 @@ public void CopyToTest() origin.SetLockMode("LM1", LockMode.Upgrade); origin.SetProperties(new Foo("Pallino", "Pinco")); origin.SetInt64(1, 1); - origin.SetBinary(2, new byte[] { }); + origin.SetBinary(2, Array.Empty()); origin.SetBoolean(3, false); origin.SetDateTime(6, DateTime.MaxValue); origin.SetCharacter("5", 'A'); diff --git a/src/NHibernate.Test/QueryTest/QueryParametersFixture.cs b/src/NHibernate.Test/QueryTest/QueryParametersFixture.cs index 29a74aaf84a..678c10beb91 100644 --- a/src/NHibernate.Test/QueryTest/QueryParametersFixture.cs +++ b/src/NHibernate.Test/QueryTest/QueryParametersFixture.cs @@ -1,3 +1,4 @@ +using System; using NHibernate.Engine; using NHibernate.Type; using NUnit.Framework; @@ -29,9 +30,9 @@ public void ValidateFailureDifferentLengths() { QueryParameters qp = new QueryParameters( new IType[] {NHibernateUtil.String}, - new object[] {}); + Array.Empty()); Assert.Throws(() => qp.ValidateParameters()); } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/SystemTransactions/TransactionNotificationFixture.cs b/src/NHibernate.Test/SystemTransactions/TransactionNotificationFixture.cs index d37e897681a..416fe5b8637 100644 --- a/src/NHibernate.Test/SystemTransactions/TransactionNotificationFixture.cs +++ b/src/NHibernate.Test/SystemTransactions/TransactionNotificationFixture.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Transactions; using NHibernate.Cfg; @@ -8,14 +9,14 @@ namespace NHibernate.Test.SystemTransactions public class TransactionNotificationFixture : TestCase { protected override IList Mappings - => new string[] { }; + => Array.Empty(); protected virtual bool UseConnectionOnSystemTransactionPrepare => true; protected override void Configure(Configuration configuration) { configuration.SetProperty( - Environment.UseConnectionOnSystemTransactionPrepare, + Cfg.Environment.UseConnectionOnSystemTransactionPrepare, UseConnectionOnSystemTransactionPrepare.ToString()); } @@ -207,4 +208,4 @@ public class TransactionWithoutConnectionFromPrepareNotificationFixture : Transa { protected override bool UseConnectionOnSystemTransactionPrepare => false; } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/TransactionTest/TransactionNotificationFixture.cs b/src/NHibernate.Test/TransactionTest/TransactionNotificationFixture.cs index 7d7a64fb960..d524ef91f77 100644 --- a/src/NHibernate.Test/TransactionTest/TransactionNotificationFixture.cs +++ b/src/NHibernate.Test/TransactionTest/TransactionNotificationFixture.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Data.Common; using NUnit.Framework; @@ -9,7 +10,7 @@ public class TransactionNotificationFixture : TestCase { protected override IList Mappings { - get { return new string[] {}; } + get { return Array.Empty(); } } @@ -113,4 +114,4 @@ public void ShouldNotifyAfterTransactionWithOwnConnection(bool usePrematureClose Assert.That(interceptor.afterTransactionCompletionCalled, Is.EqualTo(1)); } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Cfg/Configuration.cs b/src/NHibernate/Cfg/Configuration.cs index 8d595e94873..a701dd4d757 100644 --- a/src/NHibernate/Cfg/Configuration.cs +++ b/src/NHibernate/Cfg/Configuration.cs @@ -1961,106 +1961,106 @@ private void ClearListeners(ListenerType type) switch (type) { case ListenerType.Autoflush: - eventListeners.AutoFlushEventListeners = new IAutoFlushEventListener[] { }; + eventListeners.AutoFlushEventListeners = Array.Empty(); break; case ListenerType.Merge: - eventListeners.MergeEventListeners = new IMergeEventListener[] { }; + eventListeners.MergeEventListeners = Array.Empty(); break; case ListenerType.Create: - eventListeners.PersistEventListeners = new IPersistEventListener[] { }; + eventListeners.PersistEventListeners = Array.Empty(); break; case ListenerType.CreateOnFlush: - eventListeners.PersistOnFlushEventListeners = new IPersistEventListener[] { }; + eventListeners.PersistOnFlushEventListeners = Array.Empty(); break; case ListenerType.Delete: - eventListeners.DeleteEventListeners = new IDeleteEventListener[] { }; + eventListeners.DeleteEventListeners = Array.Empty(); break; case ListenerType.DirtyCheck: - eventListeners.DirtyCheckEventListeners = new IDirtyCheckEventListener[] { }; + eventListeners.DirtyCheckEventListeners = Array.Empty(); break; case ListenerType.Evict: - eventListeners.EvictEventListeners = new IEvictEventListener[] { }; + eventListeners.EvictEventListeners = Array.Empty(); break; case ListenerType.Flush: - eventListeners.FlushEventListeners = new IFlushEventListener[] { }; + eventListeners.FlushEventListeners = Array.Empty(); break; case ListenerType.FlushEntity: - eventListeners.FlushEntityEventListeners = new IFlushEntityEventListener[] { }; + eventListeners.FlushEntityEventListeners = Array.Empty(); break; case ListenerType.Load: - eventListeners.LoadEventListeners = new ILoadEventListener[] { }; + eventListeners.LoadEventListeners = Array.Empty(); break; case ListenerType.LoadCollection: - eventListeners.InitializeCollectionEventListeners = new IInitializeCollectionEventListener[] { }; + eventListeners.InitializeCollectionEventListeners = Array.Empty(); break; case ListenerType.Lock: - eventListeners.LockEventListeners = new ILockEventListener[] { }; + eventListeners.LockEventListeners = Array.Empty(); break; case ListenerType.Refresh: - eventListeners.RefreshEventListeners = new IRefreshEventListener[] { }; + eventListeners.RefreshEventListeners = Array.Empty(); break; case ListenerType.Replicate: - eventListeners.ReplicateEventListeners = new IReplicateEventListener[] { }; + eventListeners.ReplicateEventListeners = Array.Empty(); break; case ListenerType.SaveUpdate: - eventListeners.SaveOrUpdateEventListeners = new ISaveOrUpdateEventListener[] { }; + eventListeners.SaveOrUpdateEventListeners = Array.Empty(); break; case ListenerType.Save: - eventListeners.SaveEventListeners = new ISaveOrUpdateEventListener[] { }; + eventListeners.SaveEventListeners = Array.Empty(); break; case ListenerType.PreUpdate: - eventListeners.PreUpdateEventListeners = new IPreUpdateEventListener[] { }; + eventListeners.PreUpdateEventListeners = Array.Empty(); break; case ListenerType.Update: - eventListeners.UpdateEventListeners = new ISaveOrUpdateEventListener[] { }; + eventListeners.UpdateEventListeners = Array.Empty(); break; case ListenerType.PreLoad: - eventListeners.PreLoadEventListeners = new IPreLoadEventListener[] { }; + eventListeners.PreLoadEventListeners = Array.Empty(); break; case ListenerType.PreDelete: - eventListeners.PreDeleteEventListeners = new IPreDeleteEventListener[] { }; + eventListeners.PreDeleteEventListeners = Array.Empty(); break; case ListenerType.PreInsert: - eventListeners.PreInsertEventListeners = new IPreInsertEventListener[] { }; + eventListeners.PreInsertEventListeners = Array.Empty(); break; case ListenerType.PostLoad: - eventListeners.PostLoadEventListeners = new IPostLoadEventListener[] { }; + eventListeners.PostLoadEventListeners = Array.Empty(); break; case ListenerType.PostInsert: - eventListeners.PostInsertEventListeners = new IPostInsertEventListener[] { }; + eventListeners.PostInsertEventListeners = Array.Empty(); break; case ListenerType.PostUpdate: - eventListeners.PostUpdateEventListeners = new IPostUpdateEventListener[] { }; + eventListeners.PostUpdateEventListeners = Array.Empty(); break; case ListenerType.PostDelete: - eventListeners.PostDeleteEventListeners = new IPostDeleteEventListener[] { }; + eventListeners.PostDeleteEventListeners = Array.Empty(); break; case ListenerType.PostCommitUpdate: - eventListeners.PostCommitUpdateEventListeners = new IPostUpdateEventListener[] { }; + eventListeners.PostCommitUpdateEventListeners = Array.Empty(); break; case ListenerType.PostCommitInsert: - eventListeners.PostCommitInsertEventListeners = new IPostInsertEventListener[] { }; + eventListeners.PostCommitInsertEventListeners = Array.Empty(); break; case ListenerType.PostCommitDelete: - eventListeners.PostCommitDeleteEventListeners = new IPostDeleteEventListener[] { }; + eventListeners.PostCommitDeleteEventListeners = Array.Empty(); break; case ListenerType.PreCollectionRecreate: - eventListeners.PreCollectionRecreateEventListeners = new IPreCollectionRecreateEventListener[] { }; + eventListeners.PreCollectionRecreateEventListeners = Array.Empty(); break; case ListenerType.PreCollectionRemove: - eventListeners.PreCollectionRemoveEventListeners = new IPreCollectionRemoveEventListener[] { }; + eventListeners.PreCollectionRemoveEventListeners = Array.Empty(); break; case ListenerType.PreCollectionUpdate: - eventListeners.PreCollectionUpdateEventListeners = new IPreCollectionUpdateEventListener[] { }; + eventListeners.PreCollectionUpdateEventListeners = Array.Empty(); break; case ListenerType.PostCollectionRecreate: - eventListeners.PostCollectionRecreateEventListeners = new IPostCollectionRecreateEventListener[] { }; + eventListeners.PostCollectionRecreateEventListeners = Array.Empty(); break; case ListenerType.PostCollectionRemove: - eventListeners.PostCollectionRemoveEventListeners = new IPostCollectionRemoveEventListener[] { }; + eventListeners.PostCollectionRemoveEventListeners = Array.Empty(); break; case ListenerType.PostCollectionUpdate: - eventListeners.PostCollectionUpdateEventListeners = new IPostCollectionUpdateEventListener[] { }; + eventListeners.PostCollectionUpdateEventListeners = Array.Empty(); break; default: log.Warn("Unrecognized listener type [{0}]", type); diff --git a/src/NHibernate/Criterion/GroupedProjection.cs b/src/NHibernate/Criterion/GroupedProjection.cs index 6cf9c24c8a2..f037160f32e 100644 --- a/src/NHibernate/Criterion/GroupedProjection.cs +++ b/src/NHibernate/Criterion/GroupedProjection.cs @@ -49,7 +49,7 @@ public string[] GetColumnAliases(string alias, int position, ICriteria criteria, public virtual string[] Aliases { - get { return new string[] {}; } + get { return Array.Empty(); } } public virtual bool IsGrouped diff --git a/src/NHibernate/Event/EventListeners.cs b/src/NHibernate/Event/EventListeners.cs index 8081c031512..594df45e515 100644 --- a/src/NHibernate/Event/EventListeners.cs +++ b/src/NHibernate/Event/EventListeners.cs @@ -99,33 +99,33 @@ static EventListeners() private IPreLoadEventListener[] preLoadEventListeners = new IPreLoadEventListener[] {new DefaultPreLoadEventListener()}; - private IPreDeleteEventListener[] preDeleteEventListeners = new IPreDeleteEventListener[] {}; - private IPreUpdateEventListener[] preUpdateEventListeners = new IPreUpdateEventListener[] {}; - private IPreInsertEventListener[] preInsertEventListeners = new IPreInsertEventListener[] {}; - private IPostDeleteEventListener[] postDeleteEventListeners = new IPostDeleteEventListener[] {}; - private IPostUpdateEventListener[] postUpdateEventListeners = new IPostUpdateEventListener[] {}; - private IPostInsertEventListener[] postInsertEventListeners = new IPostInsertEventListener[] {}; - private IPostDeleteEventListener[] postCommitDeleteEventListeners = new IPostDeleteEventListener[] {}; - private IPostUpdateEventListener[] postCommitUpdateEventListeners = new IPostUpdateEventListener[] {}; - private IPostInsertEventListener[] postCommitInsertEventListeners = new IPostInsertEventListener[] {}; + private IPreDeleteEventListener[] preDeleteEventListeners = Array.Empty(); + private IPreUpdateEventListener[] preUpdateEventListeners = Array.Empty(); + private IPreInsertEventListener[] preInsertEventListeners = Array.Empty(); + private IPostDeleteEventListener[] postDeleteEventListeners = Array.Empty(); + private IPostUpdateEventListener[] postUpdateEventListeners = Array.Empty(); + private IPostInsertEventListener[] postInsertEventListeners = Array.Empty(); + private IPostDeleteEventListener[] postCommitDeleteEventListeners = Array.Empty(); + private IPostUpdateEventListener[] postCommitUpdateEventListeners = Array.Empty(); + private IPostInsertEventListener[] postCommitInsertEventListeners = Array.Empty(); private IPreCollectionRecreateEventListener[] preCollectionRecreateEventListeners = - new IPreCollectionRecreateEventListener[] {}; + Array.Empty(); private IPostCollectionRecreateEventListener[] postCollectionRecreateEventListeners = - new IPostCollectionRecreateEventListener[] {}; + Array.Empty(); private IPreCollectionRemoveEventListener[] preCollectionRemoveEventListeners = - new IPreCollectionRemoveEventListener[] {}; + Array.Empty(); private IPostCollectionRemoveEventListener[] postCollectionRemoveEventListeners = - new IPostCollectionRemoveEventListener[] {}; + Array.Empty(); private IPreCollectionUpdateEventListener[] preCollectionUpdateEventListeners = - new IPreCollectionUpdateEventListener[] {}; + Array.Empty(); private IPostCollectionUpdateEventListener[] postCollectionUpdateEventListeners = - new IPostCollectionUpdateEventListener[] {}; + Array.Empty(); private ISaveOrUpdateEventListener[] saveEventListeners = new ISaveOrUpdateEventListener[] {new DefaultSaveEventListener()}; diff --git a/src/NHibernate/Hql/Ast/ANTLR/Tree/ConstructorNode.cs b/src/NHibernate/Hql/Ast/ANTLR/Tree/ConstructorNode.cs index 2fe7baaca61..0759c83ad7c 100644 --- a/src/NHibernate/Hql/Ast/ANTLR/Tree/ConstructorNode.cs +++ b/src/NHibernate/Hql/Ast/ANTLR/Tree/ConstructorNode.cs @@ -137,7 +137,7 @@ private IType[] ResolveConstructorArgumentTypes() if ( argumentExpressions == null ) { // return an empty Type array - return new IType[]{}; + return Array.Empty(); } IType[] types = new IType[argumentExpressions.Length]; diff --git a/src/NHibernate/Util/ReflectHelper.cs b/src/NHibernate/Util/ReflectHelper.cs index 263764f1117..e821e966c24 100644 --- a/src/NHibernate/Util/ReflectHelper.cs +++ b/src/NHibernate/Util/ReflectHelper.cs @@ -598,7 +598,7 @@ public static bool IsFinalClass(System.Type type) /// The unwrapped exception. public static Exception UnwrapTargetInvocationException(TargetInvocationException ex) { - Exception_InternalPreserveStackTrace.Invoke(ex.InnerException, new Object[] { }); + Exception_InternalPreserveStackTrace.Invoke(ex.InnerException, Array.Empty()); return ex.InnerException; }