Browse Source

Revert "Use only var when type is obvious."

Oren Novotny 6 years ago
parent
commit
b9f9514d57
76 changed files with 1211 additions and 1385 deletions
  1. 185 83
      .editorconfig
  2. 12 12
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Amb.cs
  3. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Buffer.cs
  4. 6 6
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Catch.cs
  5. 21 21
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Distinct.cs
  6. 7 7
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/DistinctUntilChanged.cs
  7. 9 9
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Expand.cs
  8. 3 3
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Max.cs
  9. 7 7
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Merge.cs
  10. 3 3
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Min.cs
  11. 18 18
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/MinBy.cs
  12. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Retry.cs
  13. 6 6
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Scan.cs
  14. 1 1
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Throw.cs
  15. 3 3
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Timeout.cs
  16. 26 26
      Ix.NET/Source/System.Linq.Async.Queryable/System/Linq/AsyncEnumerableRewriter.cs
  17. 5 10
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerableHelpers.cs
  18. 17 19
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerablePartition.cs
  19. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerator.cs
  20. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncIterator.cs
  21. 15 21
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncListPartition.cs
  22. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Disposables.cs
  23. 16 16
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Aggregate.cs
  24. 3 3
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/All.cs
  25. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Any.cs
  26. 18 24
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/AppendPrepend.cs
  27. 1 0
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Average.Generated.cs
  28. 83 162
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Average.cs
  29. 5 5
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Concat.cs
  30. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Contains.cs
  31. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Count.cs
  32. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/DefaultIfEmpty.cs
  33. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Distinct.cs
  34. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ElementAt.cs
  35. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ElementAtOrDefault.cs
  36. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Except.cs
  37. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/First.cs
  38. 11 11
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/FirstOrDefault.cs
  39. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ForEach.cs
  40. 15 15
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/GroupBy.cs
  41. 9 9
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/GroupJoin.cs
  42. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Intersect.cs
  43. 6 6
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Join.cs
  44. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Last.cs
  45. 12 13
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/LastOrDefault.cs
  46. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/LongCount.cs
  47. 75 104
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Lookup.cs
  48. 20 20
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Max.Generic.cs
  49. 122 187
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Max.Primitive.cs
  50. 20 20
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Min.Generic.cs
  51. 150 222
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Min.Primitive.cs
  52. 1 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OfType.cs
  53. 12 12
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OrderedAsyncEnumerable.cs
  54. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Range.cs
  55. 3 3
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Reverse.cs
  56. 15 15
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Select.cs
  57. 12 12
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SelectMany.cs
  58. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SequenceEqual.cs
  59. 8 8
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Single.cs
  60. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SingleLinkedNode.cs
  61. 8 8
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SingleOrDefault.cs
  62. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SkipLast.cs
  63. 6 6
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SkipWhile.cs
  64. 110 110
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Sum.Generated.cs
  65. 11 12
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Sum.Generated.tt
  66. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeLast.cs
  67. 6 6
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeWhile.cs
  68. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToAsyncEnumerable.Observable.cs
  69. 12 12
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToDictionary.cs
  70. 3 3
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToEnumerable.cs
  71. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToHashSet.cs
  72. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToList.cs
  73. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToObservable.cs
  74. 12 12
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Union.cs
  75. 7 7
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Where.cs
  76. 11 21
      Ix.NET/Source/System.Linq.Async/System/Linq/Set.cs

+ 185 - 83
.editorconfig

@@ -1,104 +1,216 @@
-# editorconfig.org
+# EditorConfig is awesome:http://EditorConfig.org
+# From https://raw.githubusercontent.com/dotnet/roslyn/master/.editorconfig
 
 # top-most EditorConfig file
 root = true
 
-# Default settings:
-# A newline ending every file
-# Use 4 spaces as indentation
+# Don't use tabs for indentation.
 [*]
-insert_final_newline = true
 indent_style = space
+trim_trailing_whitespace = true
+# (Please don't specify an indent_size here; that has too many unintended consequences.)
+
+# Code files
+[*.{cs,csx,vb,vbx}]
 indent_size = 4
+insert_final_newline = true
+charset = utf-8-bom
 
-[project.json]
+# Xml project files
+[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
 indent_size = 2
 
-# C# files
-[*.cs]
-# New line preferences
-csharp_new_line_before_open_brace = all
-csharp_new_line_before_else = true
-csharp_new_line_before_catch = true
-csharp_new_line_before_finally = true
-csharp_new_line_before_members_in_object_initializers = true
-csharp_new_line_before_members_in_anonymous_types = true
-csharp_new_line_between_query_expression_clauses = true
+# Xml config files
+[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
+indent_size = 2
 
-# Indentation preferences
-csharp_indent_block_contents = true
-csharp_indent_braces = false
-csharp_indent_case_contents = true
-csharp_indent_switch_labels = true
-csharp_indent_labels = one_less_than_current
+# Yml/Yaml files
+[*.{yaml,yml}]
+indent_size = 2
+
+# Powershell files
+[*.ps1]
+indent_size = 2
+
+# JSON files
+[*.json]
+indent_size = 2
 
-# avoid this. unless absolutely necessary
+# Shell scripts
+[*.sh]
+end_of_line = lf
+
+[*.{cmd,bat}]
+end_of_line = crlf
+
+# Dotnet code style settings:
+[*.{cs,vb}]
+# Sort using and Import directives with System.* appearing first
+dotnet_sort_system_directives_first = true
+# Put a blank line between System.* and Microsoft.*
+dotnet_separate_import_directive_groups = true
+
+# Avoid "this." and "Me." if not necessary
 dotnet_style_qualification_for_field = false:suggestion
 dotnet_style_qualification_for_property = false:suggestion
 dotnet_style_qualification_for_method = false:suggestion
 dotnet_style_qualification_for_event = false:suggestion
 
-# only use var when it's obvious what the variable type is
-csharp_style_var_for_built_in_types = false:none
-csharp_style_var_when_type_is_apparent = false:none
-csharp_style_var_elsewhere = false:suggestion
-
-# use language keywords instead of BCL types
+# Use language keywords instead of framework type names for type references
 dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
 dotnet_style_predefined_type_for_member_access = true:suggestion
 
-# name all constant fields using PascalCase
-dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
-dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols  = constant_fields
-dotnet_naming_rule.constant_fields_should_be_pascal_case.style    = pascal_case_style
+# Prefer read-only on fields
+dotnet_style_readonly_field = true:warning
+
+# Suggest more modern language features when available
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+dotnet_style_prefer_conditional_expression_over_return = false
+dotnet_style_prefer_conditional_expression_over_assignment = false
+dotnet_style_prefer_auto_properties = true:suggestion
+
+# Parentheses
+dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
+dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
+dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
+dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
+
+# Accessibility modifiers
+dotnet_style_require_accessibility_modifiers = always:suggestion
+
+
+# Naming Rules
+
+# Interfaces start with an I and are PascalCased
+dotnet_naming_rule.interfaces_must_be_pascal_cased_and_prefixed_with_I.symbols                        = interface_symbols
+dotnet_naming_rule.interfaces_must_be_pascal_cased_and_prefixed_with_I.style                          = pascal_case_and_prefix_with_I_style
+dotnet_naming_rule.interfaces_must_be_pascal_cased_and_prefixed_with_I.severity                       = warning
+
+# External members are PascalCased
+dotnet_naming_rule.externally_visible_members_must_be_pascal_cased.symbols                            = externally_visible_symbols
+dotnet_naming_rule.externally_visible_members_must_be_pascal_cased.style                              = pascal_case_style
+dotnet_naming_rule.externally_visible_members_must_be_pascal_cased.severity                           = warning
+
+# Parameters are camelCased
+dotnet_naming_rule.parameters_must_be_camel_cased.symbols                                             = parameter_symbols
+dotnet_naming_rule.parameters_must_be_camel_cased.style                                               = camel_case_style
+dotnet_naming_rule.parameters_must_be_camel_cased.severity                                            = warning
+
+# Constants are PascalCased
+dotnet_naming_rule.constants_must_be_pascal_cased.symbols                                             = constant_symbols
+dotnet_naming_rule.constants_must_be_pascal_cased.style                                               = pascal_case_style
+dotnet_naming_rule.constants_must_be_pascal_cased.severity                                            = warning
+
+# Uncomment this group and comment out the next group if you prefer s_ prefixes for static fields
+
+# Private static fields are prefixed with s_ and are camelCased like s_myStatic
+#dotnet_naming_rule.private_static_fields_must_be_camel_cased_and_prefixed_with_s_underscore.symbols   = private_static_field_symbols
+#dotnet_naming_rule.private_static_fields_must_be_camel_cased_and_prefixed_with_s_underscore.style     = camel_case_and_prefix_with_s_underscore_style
+#dotnet_naming_rule.private_static_fields_must_be_camel_cased_and_prefixed_with_s_underscore.severity  = warning
 
-dotnet_naming_symbols.constant_fields.applicable_kinds   = field
-dotnet_naming_symbols.constant_fields.required_modifiers = const
+# Static readonly fields are PascalCased
+dotnet_naming_rule.static_readonly_fields_should_be_pascal_case.symbols                               = private_static_readonly_field_symbols
+dotnet_naming_rule.static_readonly_fields_should_be_pascal_case.style                                 = pascal_case_style
+dotnet_naming_rule.static_readonly_fields_should_be_pascal_case.severity                              = warning
 
-dotnet_naming_style.pascal_case_style.capitalization = pascal_case
+# Comment this group and uncomment out the next group if you don't want _ prefixed fields.
 
-# static fields should have s_ prefix
-dotnet_naming_rule.static_fields_should_have_prefix.severity = suggestion
-dotnet_naming_rule.static_fields_should_have_prefix.symbols  = static_fields
-dotnet_naming_rule.static_fields_should_have_prefix.style    = static_prefix_style
+# Private instance fields are camelCased with an _ like _myField
+dotnet_naming_rule.private_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.symbols   = private_field_symbols
+dotnet_naming_rule.private_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.style     = camel_case_and_prefix_with_underscore_style
+dotnet_naming_rule.private_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.severity  = warning
 
-dotnet_naming_symbols.static_fields.applicable_kinds   = field
-dotnet_naming_symbols.static_fields.required_modifiers = static
+# Private instance fields are camelCased
+#dotnet_naming_rule.private_instance_fields_must_be_camel_cased.symbols                                = private_field_symbols
+#dotnet_naming_rule.private_instance_fields_must_be_camel_cased.style                                  = camel_case_style
+#dotnet_naming_rule.private_instance_fields_must_be_camel_cased.severity                               = warning
 
-dotnet_naming_style.static_prefix_style.required_prefix = s_
-dotnet_naming_style.static_prefix_style.capitalization = camel_case 
+# Symbols
+dotnet_naming_symbols.externally_visible_symbols.applicable_kinds                                     = class,struct,interface,enum,property,method,field,event,delegate
+dotnet_naming_symbols.externally_visible_symbols.applicable_accessibilities                           = public,internal,friend,protected,protected_internal,protected_friend,private_protected
 
-# internal and private fields should be _camelCase
-dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion
-dotnet_naming_rule.camel_case_for_private_internal_fields.symbols  = private_internal_fields
-dotnet_naming_rule.camel_case_for_private_internal_fields.style    = camel_case_underscore_style
+dotnet_naming_symbols.interface_symbols.applicable_kinds                                              = interface
+dotnet_naming_symbols.interface_symbols.applicable_accessibilities                                    = *
 
-dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
-dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal
+dotnet_naming_symbols.parameter_symbols.applicable_kinds                                              = parameter
+dotnet_naming_symbols.parameter_symbols.applicable_accessibilities                                    = *
 
-dotnet_naming_style.camel_case_underscore_style.required_prefix = _
-dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case 
+dotnet_naming_symbols.constant_symbols.applicable_kinds                                               = field
+dotnet_naming_symbols.constant_symbols.required_modifiers                                             = const
+dotnet_naming_symbols.constant_symbols.applicable_accessibilities                                     = *
+
+dotnet_naming_symbols.private_static_field_symbols.applicable_kinds                                   = field
+dotnet_naming_symbols.private_static_field_symbols.required_modifiers                                 = static,shared
+dotnet_naming_symbols.private_static_field_symbols.applicable_accessibilities                         = private
+
+dotnet_naming_symbols.private_static_readonly_field_symbols.applicable_kinds                          = field
+dotnet_naming_symbols.private_static_readonly_field_symbols.required_modifiers                        = static,shared,readonly
+dotnet_naming_symbols.private_static_readonly_field_symbols.applicable_accessibilities                = private
+
+dotnet_naming_symbols.private_field_symbols.applicable_kinds                                          = field
+dotnet_naming_symbols.private_field_symbols.applicable_accessibilities                                = private
+
+# Styles
+dotnet_naming_style.camel_case_style.capitalization                                                   = camel_case
+
+dotnet_naming_style.pascal_case_style.capitalization                                                  = pascal_case
+
+dotnet_naming_style.camel_case_and_prefix_with_s_underscore_style.required_prefix                     = s_
+dotnet_naming_style.camel_case_and_prefix_with_s_underscore_style.capitalization                      = camel_case
+
+dotnet_naming_style.camel_case_and_prefix_with_underscore_style.required_prefix                       = _
+dotnet_naming_style.camel_case_and_prefix_with_underscore_style.capitalization                        = camel_case
+
+dotnet_naming_style.pascal_case_and_prefix_with_I_style.required_prefix                               = I
+dotnet_naming_style.pascal_case_and_prefix_with_I_style.capitalization                                = pascal_case
+
+
+# CSharp code style settings:
+[*.cs]
+# Modifier order
+csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
+
+# Code block
+csharp_prefer_braces = false:none
+
+# Indentation preferences
+csharp_indent_block_contents = true
+csharp_indent_braces = false
+csharp_indent_case_contents = true
+csharp_indent_switch_labels = true
+csharp_indent_labels = flush_left
+
+# Prefer "var" everywhere
+csharp_style_var_for_built_in_types = true:suggestion
+csharp_style_var_when_type_is_apparent = true:suggestion
+csharp_style_var_elsewhere = true:suggestion
 
 # Code style defaults
-dotnet_sort_system_directives_first = true
 csharp_preserve_single_line_blocks = true
-csharp_preserve_single_line_statements = false
+csharp_preserve_single_line_statements = true
 
-# Expression-level preferences
-dotnet_style_object_initializer = true:suggestion
-dotnet_style_collection_initializer = true:suggestion
-dotnet_style_explicit_tuple_names = true:suggestion
-dotnet_style_coalesce_expression = true:suggestion
-dotnet_style_null_propagation = true:suggestion
-
-# Expression-bodied members
+# Prefer method-like constructs to have a block body
 csharp_style_expression_bodied_methods = false:none
 csharp_style_expression_bodied_constructors = false:none
 csharp_style_expression_bodied_operators = false:none
+
+# Prefer property-like constructs to have an expression-body
 csharp_style_expression_bodied_properties = true:none
 csharp_style_expression_bodied_indexers = true:none
 csharp_style_expression_bodied_accessors = true:none
 
+# Expression 
+csharp_prefer_simple_default_expression = true:suggestion
+csharp_style_deconstructed_variable_declaration = true:suggestion
+csharp_style_pattern_local_over_anonymous_function = true:suggestion
+
 # Pattern matching
 csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
 csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
@@ -108,6 +220,15 @@ csharp_style_inlined_variable_declaration = true:suggestion
 csharp_style_throw_expression = true:suggestion
 csharp_style_conditional_delegate_call = true:suggestion
 
+# Newline settings
+csharp_new_line_before_open_brace = all
+csharp_new_line_before_else = true
+csharp_new_line_before_catch = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_object_initializers = true
+csharp_new_line_before_members_in_anonymous_types = true
+csharp_new_line_between_query_expression_clauses = true
+
 # Space preferences
 csharp_space_after_cast = false
 csharp_space_after_colon_in_inheritance_clause = true
@@ -132,29 +253,10 @@ csharp_space_between_method_declaration_parameter_list_parentheses = false
 csharp_space_between_parentheses = false
 csharp_space_between_square_brackets = false
 
-# C++ Files
-[*.{cpp,h,in}]
-curly_bracket_next_line = true
-indent_brace_style = Allman
 
-# Xml project files
-[*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
-indent_size = 2
 
-# Xml build files
-[*.builds]
-indent_size = 2
 
-# Xml files
-[*.{xml,stylecop,resx,ruleset}]
-indent_size = 2
 
-# Xml config files
-[*.{props,targets,config,nuspec}]
-indent_size = 2
 
-# Shell scripts
-[*.sh]
-end_of_line = lf
-[*.{cmd, bat}]
-end_of_line = crlf
+
+

+ 12 - 12
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Amb.cs

@@ -73,13 +73,13 @@ namespace System.Linq
                 switch (_state)
                 {
                     case AsyncIteratorState.Allocated:
-                        IAsyncEnumerator<TSource> firstEnumerator = _first.GetAsyncEnumerator(_cancellationToken);
-                        IAsyncEnumerator<TSource> secondEnumerator = _second.GetAsyncEnumerator(_cancellationToken);
+                        var firstEnumerator = _first.GetAsyncEnumerator(_cancellationToken);
+                        var secondEnumerator = _second.GetAsyncEnumerator(_cancellationToken);
 
-                        Task<bool> firstMoveNext = firstEnumerator.MoveNextAsync().AsTask();
-                        Task<bool> secondMoveNext = secondEnumerator.MoveNextAsync().AsTask();
+                        var firstMoveNext = firstEnumerator.MoveNextAsync().AsTask();
+                        var secondMoveNext = secondEnumerator.MoveNextAsync().AsTask();
 
-                        Task<bool> winner = await Task.WhenAny(firstMoveNext, secondMoveNext).ConfigureAwait(false);
+                        var winner = await Task.WhenAny(firstMoveNext, secondMoveNext).ConfigureAwait(false);
 
                         //
                         // REVIEW: An alternative option is to call DisposeAsync on the other and await it, but this has two drawbacks:
@@ -94,7 +94,7 @@ namespace System.Linq
                         {
                             _enumerator = firstEnumerator;
 
-                            Task ignored = secondMoveNext.ContinueWith(_ =>
+                            var ignored = secondMoveNext.ContinueWith(_ =>
                             {
                                 secondEnumerator.DisposeAsync();
                             });
@@ -103,7 +103,7 @@ namespace System.Linq
                         {
                             _enumerator = secondEnumerator;
 
-                            Task ignored = firstMoveNext.ContinueWith(_ =>
+                            var ignored = firstMoveNext.ContinueWith(_ =>
                             {
                                 firstEnumerator.DisposeAsync();
                             });
@@ -168,20 +168,20 @@ namespace System.Linq
                 switch (_state)
                 {
                     case AsyncIteratorState.Allocated:
-                        int n = _sources.Length;
+                        var n = _sources.Length;
 
                         var enumerators = new IAsyncEnumerator<TSource>[n];
                         var moveNexts = new ValueTask<bool>[n];
 
                         for (var i = 0; i < n; i++)
                         {
-                            IAsyncEnumerator<TSource> enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
+                            var enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
 
                             enumerators[i] = enumerator;
                             moveNexts[i] = enumerator.MoveNextAsync();
                         }
 
-                        Task<bool> winner = await Task.WhenAny(moveNexts.Select(t => t.AsTask())).ConfigureAwait(false);
+                        var winner = await Task.WhenAny(moveNexts.Select(t => t.AsTask())).ConfigureAwait(false);
 
                         //
                         // REVIEW: An alternative option is to call DisposeAsync on the other and await it, but this has two drawbacks:
@@ -192,7 +192,7 @@ namespace System.Linq
                         // The approach below has one drawback, namely that exceptions raised by any loser are dropped on the floor.
                         //
 
-                        int winnerIndex = Array.IndexOf(moveNexts, winner);
+                        var winnerIndex = Array.IndexOf(moveNexts, winner);
 
                         _enumerator = enumerators[winnerIndex];
 
@@ -200,7 +200,7 @@ namespace System.Linq
                         {
                             if (i != winnerIndex)
                             {
-                                Task ignored = moveNexts[i].AsTask().ContinueWith(_ =>
+                                var ignored = moveNexts[i].AsTask().ContinueWith(_ =>
                                 {
                                     enumerators[i].DisposeAsync();
                                 });

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Buffer.cs

@@ -91,14 +91,14 @@ namespace System.Linq
                             {
                                 if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                                 {
-                                    TSource item = _enumerator.Current;
+                                    var item = _enumerator.Current;
 
                                     if (_index++ % _skip == 0)
                                     {
                                         _buffers.Enqueue(new List<TSource>(_count));
                                     }
 
-                                    foreach (IList<TSource> buffer in _buffers)
+                                    foreach (var buffer in _buffers)
                                     {
                                         buffer.Add(item);
                                     }

+ 6 - 6
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Catch.cs

@@ -140,8 +140,8 @@ namespace System.Linq
                                     // Note: Ideally we'd dispose of the previous enumerator before
                                     // invoking the handler, but we use this order to preserve
                                     // current behavior
-                                    IAsyncEnumerable<TSource> inner = _handler(ex);
-                                    IAsyncEnumerator<TSource> err = inner.GetAsyncEnumerator(_cancellationToken);
+                                    var inner = _handler(ex);
+                                    var err = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     if (_enumerator != null)
                                     {
@@ -233,8 +233,8 @@ namespace System.Linq
                                     // Note: Ideally we'd dispose of the previous enumerator before
                                     // invoking the handler, but we use this order to preserve
                                     // current behavior
-                                    IAsyncEnumerable<TSource> inner = await _handler(ex).ConfigureAwait(false);
-                                    IAsyncEnumerator<TSource> err = inner.GetAsyncEnumerator(_cancellationToken);
+                                    var inner = await _handler(ex).ConfigureAwait(false);
+                                    var err = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     if (_enumerator != null)
                                     {
@@ -327,8 +327,8 @@ namespace System.Linq
                                     // Note: Ideally we'd dispose of the previous enumerator before
                                     // invoking the handler, but we use this order to preserve
                                     // current behavior
-                                    IAsyncEnumerable<TSource> inner = await _handler(ex, _cancellationToken).ConfigureAwait(false);
-                                    IAsyncEnumerator<TSource> err = inner.GetAsyncEnumerator(_cancellationToken);
+                                    var inner = await _handler(ex, _cancellationToken).ConfigureAwait(false);
+                                    var err = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     if (_enumerator != null)
                                     {

+ 21 - 21
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Distinct.cs

@@ -113,13 +113,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s;
             }
 
@@ -133,13 +133,13 @@ namespace System.Linq
                 var count = 0;
                 var s = new Set<TKey>(_comparer);
 
-                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
+                var enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource item = enu.Current;
+                        var item = enu.Current;
 
                         if (s.Add(_keySelector(item)))
                         {
@@ -185,7 +185,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        TSource element = _enumerator.Current;
+                        var element = _enumerator.Current;
                         _set = new Set<TKey>(_comparer);
                         _set.Add(_keySelector(element));
                         _current = element;
@@ -217,13 +217,13 @@ namespace System.Linq
                 var s = new Set<TKey>(_comparer);
                 var r = new List<TSource>();
 
-                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
+                var enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource item = enu.Current;
+                        var item = enu.Current;
 
                         if (s.Add(_keySelector(item)))
                         {
@@ -261,13 +261,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s;
             }
 
@@ -281,13 +281,13 @@ namespace System.Linq
                 var count = 0;
                 var s = new Set<TKey>(_comparer);
 
-                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
+                var enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource item = enu.Current;
+                        var item = enu.Current;
 
                         if (s.Add(await _keySelector(item).ConfigureAwait(false)))
                         {
@@ -333,7 +333,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        TSource element = _enumerator.Current;
+                        var element = _enumerator.Current;
                         _set = new Set<TKey>(_comparer);
                         _set.Add(await _keySelector(element).ConfigureAwait(false));
                         _current = element;
@@ -365,13 +365,13 @@ namespace System.Linq
                 var s = new Set<TKey>(_comparer);
                 var r = new List<TSource>();
 
-                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
+                var enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource item = enu.Current;
+                        var item = enu.Current;
 
                         if (s.Add(await _keySelector(item).ConfigureAwait(false)))
                         {
@@ -410,13 +410,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s;
             }
 
@@ -430,13 +430,13 @@ namespace System.Linq
                 var count = 0;
                 var s = new Set<TKey>(_comparer);
 
-                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
+                var enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource item = enu.Current;
+                        var item = enu.Current;
 
                         if (s.Add(await _keySelector(item, cancellationToken).ConfigureAwait(false)))
                         {
@@ -482,7 +482,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        TSource element = _enumerator.Current;
+                        var element = _enumerator.Current;
                         _set = new Set<TKey>(_comparer);
                         _set.Add(await _keySelector(element, _cancellationToken).ConfigureAwait(false));
                         _current = element;
@@ -514,13 +514,13 @@ namespace System.Linq
                 var s = new Set<TKey>(_comparer);
                 var r = new List<TSource>();
 
-                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
+                var enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource item = enu.Current;
+                        var item = enu.Current;
 
                         if (s.Add(await _keySelector(item, cancellationToken).ConfigureAwait(false)))
                         {

+ 7 - 7
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/DistinctUntilChanged.cs

@@ -159,7 +159,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             var comparerEquals = false;
 
                             if (_hasCurrentValue)
@@ -230,8 +230,8 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
-                            TKey key = _keySelector(item);
+                            var item = _enumerator.Current;
+                            var key = _keySelector(item);
                             var comparerEquals = false;
 
                             if (_hasCurrentKey)
@@ -302,8 +302,8 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
-                            TKey key = await _keySelector(item).ConfigureAwait(false);
+                            var item = _enumerator.Current;
+                            var key = await _keySelector(item).ConfigureAwait(false);
                             var comparerEquals = false;
 
                             if (_hasCurrentKey)
@@ -375,8 +375,8 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
-                            TKey key = await _keySelector(item, _cancellationToken).ConfigureAwait(false);
+                            var item = _enumerator.Current;
+                            var key = await _keySelector(item, _cancellationToken).ConfigureAwait(false);
                             var comparerEquals = false;
 
                             if (_hasCurrentKey)

+ 9 - 9
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Expand.cs

@@ -97,7 +97,7 @@ namespace System.Linq
                             {
                                 if (_queue.Count > 0)
                                 {
-                                    IAsyncEnumerable<TSource> src = _queue.Dequeue();
+                                    var src = _queue.Dequeue();
 
                                     if (_enumerator != null)
                                     {
@@ -114,8 +114,8 @@ namespace System.Linq
 
                             if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
-                                TSource item = _enumerator.Current;
-                                IAsyncEnumerable<TSource> next = _selector(item);
+                                var item = _enumerator.Current;
+                                var next = _selector(item);
                                 _queue.Enqueue(next);
                                 _current = item;
                                 return true;
@@ -187,7 +187,7 @@ namespace System.Linq
                             {
                                 if (_queue.Count > 0)
                                 {
-                                    IAsyncEnumerable<TSource> src = _queue.Dequeue();
+                                    var src = _queue.Dequeue();
 
                                     if (_enumerator != null)
                                     {
@@ -204,8 +204,8 @@ namespace System.Linq
 
                             if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
-                                TSource item = _enumerator.Current;
-                                IAsyncEnumerable<TSource> next = await _selector(item).ConfigureAwait(false);
+                                var item = _enumerator.Current;
+                                var next = await _selector(item).ConfigureAwait(false);
                                 _queue.Enqueue(next);
                                 _current = item;
                                 return true;
@@ -278,7 +278,7 @@ namespace System.Linq
                             {
                                 if (_queue.Count > 0)
                                 {
-                                    IAsyncEnumerable<TSource> src = _queue.Dequeue();
+                                    var src = _queue.Dequeue();
 
                                     if (_enumerator != null)
                                     {
@@ -295,8 +295,8 @@ namespace System.Linq
 
                             if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
-                                TSource item = _enumerator.Current;
-                                IAsyncEnumerable<TSource> next = await _selector(item, _cancellationToken).ConfigureAwait(false);
+                                var item = _enumerator.Current;
+                                var next = await _selector(item, _cancellationToken).ConfigureAwait(false);
                                 _queue.Enqueue(next);
                                 _current = item;
                                 return true;

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Max.cs

@@ -33,18 +33,18 @@ namespace System.Linq
                 comparer = Comparer<TSource>.Default;
             }
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                TSource max = e.Current;
+                var max = e.Current;
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource cur = e.Current;
+                    var cur = e.Current;
 
                     if (comparer.Compare(cur, max) > 0)
                     {

+ 7 - 7
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Merge.cs

@@ -58,13 +58,13 @@ namespace System.Linq
             {
                 if (_enumerators != null)
                 {
-                    int n = _enumerators.Length;
+                    var n = _enumerators.Length;
 
                     var disposes = new ValueTask[n];
 
                     for (var i = 0; i < n; i++)
                     {
-                        ValueTask dispose = _enumerators[i].DisposeAsync();
+                        var dispose = _enumerators[i].DisposeAsync();
                         disposes[i] = dispose;
                     }
 
@@ -80,7 +80,7 @@ namespace System.Linq
                 switch (_state)
                 {
                     case AsyncIteratorState.Allocated:
-                        int n = _sources.Length;
+                        var n = _sources.Length;
 
                         _enumerators = new IAsyncEnumerator<TSource>[n];
                         _moveNexts = new ValueTask<bool>[n];
@@ -88,7 +88,7 @@ namespace System.Linq
 
                         for (var i = 0; i < n; i++)
                         {
-                            IAsyncEnumerator<TSource> enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
+                            var enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
                             _enumerators[i] = enumerator;
                             _moveNexts[i] = enumerator.MoveNextAsync();
                         }
@@ -105,9 +105,9 @@ namespace System.Linq
                             //         want to consider a "prefer fairness" option.
                             //
 
-                            Task<bool> moveNext = await Task.WhenAny(_moveNexts.Select(t => t.AsTask())).ConfigureAwait(false);
+                            var moveNext = await Task.WhenAny(_moveNexts.Select(t => t.AsTask())).ConfigureAwait(false);
 
-                            int index = Array.IndexOf(_moveNexts, moveNext);
+                            var index = Array.IndexOf(_moveNexts, moveNext);
 
                             if (!await moveNext.ConfigureAwait(false))
                             {
@@ -116,7 +116,7 @@ namespace System.Linq
                             }
                             else
                             {
-                                IAsyncEnumerator<TSource> enumerator = _enumerators[index];
+                                var enumerator = _enumerators[index];
                                 _current = enumerator.Current;
                                 _moveNexts[index] = enumerator.MoveNextAsync();
                                 return true;

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Min.cs

@@ -33,18 +33,18 @@ namespace System.Linq
                 comparer = Comparer<TSource>.Default;
             }
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                TSource min = e.Current;
+                var min = e.Current;
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource cur = e.Current;
+                    var cur = e.Current;
 
                     if (comparer.Compare(cur, min) < 0)
                     {

+ 18 - 18
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/MinBy.cs

@@ -150,23 +150,23 @@ namespace System.Linq
         {
             var result = new List<TSource>();
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                TSource current = e.Current;
-                TKey resKey = keySelector(current);
+                var current = e.Current;
+                var resKey = keySelector(current);
                 result.Add(current);
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource cur = e.Current;
-                    TKey key = keySelector(cur);
+                    var cur = e.Current;
+                    var key = keySelector(cur);
 
-                    int cmp = compare(key, resKey);
+                    var cmp = compare(key, resKey);
 
                     if (cmp == 0)
                     {
@@ -191,23 +191,23 @@ namespace System.Linq
         {
             var result = new List<TSource>();
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                TSource current = e.Current;
-                TKey resKey = await keySelector(current).ConfigureAwait(false);
+                var current = e.Current;
+                var resKey = await keySelector(current).ConfigureAwait(false);
                 result.Add(current);
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource cur = e.Current;
-                    TKey key = await keySelector(cur).ConfigureAwait(false);
+                    var cur = e.Current;
+                    var key = await keySelector(cur).ConfigureAwait(false);
 
-                    int cmp = compare(key, resKey);
+                    var cmp = compare(key, resKey);
 
                     if (cmp == 0)
                     {
@@ -233,23 +233,23 @@ namespace System.Linq
         {
             var result = new List<TSource>();
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                TSource current = e.Current;
-                TKey resKey = await keySelector(current, cancellationToken).ConfigureAwait(false);
+                var current = e.Current;
+                var resKey = await keySelector(current, cancellationToken).ConfigureAwait(false);
                 result.Add(current);
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource cur = e.Current;
-                    TKey key = await keySelector(cur, cancellationToken).ConfigureAwait(false);
+                    var cur = e.Current;
+                    var key = await keySelector(cur, cancellationToken).ConfigureAwait(false);
 
-                    int cmp = compare(key, resKey);
+                    var cmp = compare(key, resKey);
 
                     if (cmp == 0)
                     {

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Retry.cs

@@ -30,7 +30,7 @@ namespace System.Linq
         {
             while (true)
             {
-                foreach (TSource item in source)
+                foreach (var item in source)
                 {
                     yield return item;
                 }
@@ -41,7 +41,7 @@ namespace System.Linq
         {
             for (var i = 0; i < count; i++)
             {
-                foreach (TSource item in source)
+                foreach (var item in source)
                 {
                     yield return item;
                 }

+ 6 - 6
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Scan.cs

@@ -127,7 +127,7 @@ namespace System.Linq
 
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             if (!_hasSeed)
                             {
@@ -200,7 +200,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             _accumulated = _accumulator(_accumulated, item);
                             _current = _accumulated;
                             return true;
@@ -266,7 +266,7 @@ namespace System.Linq
 
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             if (!_hasSeed)
                             {
@@ -342,7 +342,7 @@ namespace System.Linq
 
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             if (!_hasSeed)
                             {
@@ -416,7 +416,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             _accumulated = await _accumulator(_accumulated, item).ConfigureAwait(false);
                             _current = _accumulated;
                             return true;
@@ -482,7 +482,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             _accumulated = await _accumulator(_accumulated, item, _cancellationToken).ConfigureAwait(false);
                             _current = _accumulated;
                             return true;

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Throw.cs

@@ -61,7 +61,7 @@ namespace System.Linq
 
                 public ValueTask<bool> MoveNextAsync()
                 {
-                    ValueTask<bool> result = _moveNextThrows;
+                    var result = _moveNextThrows;
                     _moveNextThrows = new ValueTask<bool>(false);
                     return result;
                 }

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Timeout.cs

@@ -73,7 +73,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        ValueTask<bool> moveNext = _enumerator.MoveNextAsync();
+                        var moveNext = _enumerator.MoveNextAsync();
 
                         if (!moveNext.IsCompleted)
                         {
@@ -81,9 +81,9 @@ namespace System.Linq
                             {
                                 var delay = Task.Delay(_timeout, delayCts.Token);
 
-                                Task<bool> next = moveNext.AsTask();
+                                var next = moveNext.AsTask();
 
-                                Task winner = await Task.WhenAny(next, delay).ConfigureAwait(false);
+                                var winner = await Task.WhenAny(next, delay).ConfigureAwait(false);
 
                                 if (winner == delay)
                                 {

+ 26 - 26
Ix.NET/Source/System.Linq.Async.Queryable/System/Linq/AsyncEnumerableRewriter.cs

@@ -15,7 +15,7 @@ namespace System.Linq
     /// </summary>
     internal class AsyncEnumerableRewriter : ExpressionVisitor
     {
-        private static volatile ILookup<string, MethodInfo> s_methods;
+        private static volatile ILookup<string, MethodInfo> _methods;
 
         protected override Expression VisitConstant(ConstantExpression node)
         {
@@ -34,7 +34,7 @@ namespace System.Linq
             //
             if (enumerableQuery.Enumerable != null)
             {
-                Type publicType = GetPublicType(enumerableQuery.Enumerable.GetType());
+                var publicType = GetPublicType(enumerableQuery.Enumerable.GetType());
                 return Expression.Constant(enumerableQuery.Enumerable, publicType);
             }
 
@@ -46,8 +46,8 @@ namespace System.Linq
 
         protected override Expression VisitMethodCall(MethodCallExpression node)
         {
-            Expression obj = Visit(node.Object);
-            ReadOnlyCollection<Expression> args = Visit(node.Arguments);
+            var obj = Visit(node.Object);
+            var args = Visit(node.Arguments);
 
             //
             // Nothing changed during the visit; just some unrelated method call that can
@@ -58,7 +58,7 @@ namespace System.Linq
                 return node;
             }
 
-            Type[] typeArgs = node.Method.IsGenericMethod ? node.Method.GetGenericArguments() : null;
+            var typeArgs = node.Method.IsGenericMethod ? node.Method.GetGenericArguments() : null;
 
             //
             // Check whether the method is compatible with the recursively rewritten instance
@@ -115,11 +115,11 @@ namespace System.Linq
                 return type;
             }
 
-            foreach (Type ifType in type.GetInterfaces())
+            foreach (var ifType in type.GetInterfaces())
             {
                 if (ifType.IsGenericType())
                 {
-                    Type def = ifType.GetGenericTypeDefinition();
+                    var def = ifType.GetGenericTypeDefinition();
                     if (def == typeof(IAsyncEnumerable<>) || def == typeof(IAsyncGrouping<,>))
                     {
                         return ifType;
@@ -143,7 +143,7 @@ namespace System.Linq
             //
             // Number of parameters should match the number of arguments to bind.
             //
-            ParameterInfo[] parameters = method.GetParameters();
+            var parameters = method.GetParameters();
             if (parameters.Length != args.Count)
             {
                 return false;
@@ -198,7 +198,7 @@ namespace System.Linq
             //
             for (var i = 0; i < args.Count; i++)
             {
-                Type type = parameters[i].ParameterType;
+                var type = parameters[i].ParameterType;
 
                 //
                 // Hardening against reflection quirks.
@@ -218,7 +218,7 @@ namespace System.Linq
                     type = type.GetElementType();
                 }
 
-                Expression expression = args[i];
+                var expression = args[i];
 
                 //
                 // If the expression is assignable to the parameter, all is good. If not,
@@ -255,7 +255,7 @@ namespace System.Linq
             //
             // Get all of the method parameters. No fix-up needed if empty.
             //
-            ParameterInfo[] parameters = method.GetParameters();
+            var parameters = method.GetParameters();
             if (parameters.Length != 0)
             {
                 var list = default(List<Expression>);
@@ -266,8 +266,8 @@ namespace System.Linq
                 //
                 for (var i = 0; i < parameters.Length; i++)
                 {
-                    Expression expression = argList[i];
-                    ParameterInfo parameterInfo = parameters[i];
+                    var expression = argList[i];
+                    var parameterInfo = parameters[i];
 
                     //
                     // Perform the fix-up if needed and check the outcome. If a
@@ -305,7 +305,7 @@ namespace System.Linq
 
         private static Expression FixupQuotedExpression(Type type, Expression expression)
         {
-            Expression res = expression;
+            var res = expression;
 
             //
             // Keep unquoting until assignability checks pass.
@@ -322,13 +322,13 @@ namespace System.Linq
                     //
                     if (!type.IsAssignableFrom(res.Type) && type.IsArray && res.NodeType == ExpressionType.NewArrayInit)
                     {
-                        Type unquotedType = StripExpression(res.Type);
+                        var unquotedType = StripExpression(res.Type);
                         if (type.IsAssignableFrom(unquotedType))
                         {
                             var newArrayExpression = (NewArrayExpression)res;
 
                             var count = newArrayExpression.Expressions.Count;
-                            Type elementType = type.GetElementType();
+                            var elementType = type.GetElementType();
                             var list = new List<Expression>(count);
 
                             for (var i = 0; i < count; i++)
@@ -357,12 +357,12 @@ namespace System.Linq
             //
             // Array of quotes need to be stripped, so extract the element type.
             //
-            Type elemType = type.IsArray ? type.GetElementType() : type;
+            var elemType = type.IsArray ? type.GetElementType() : type;
 
             //
             // Try to find Expression<T> and obtain T.
             //
-            Type genType = FindGenericType(typeof(Expression<>), elemType);
+            var genType = FindGenericType(typeof(Expression<>), elemType);
             if (genType != null)
             {
                 elemType = genType.GetGenericArguments()[0];
@@ -393,15 +393,15 @@ namespace System.Linq
             //
             // Ensure the cached lookup table for AsyncEnumerable methods is initialized.
             //
-            if (s_methods == null)
+            if (_methods == null)
             {
-                s_methods = typeof(AsyncEnumerable).GetMethods(BindingFlags.Static | BindingFlags.Public).ToLookup(m => m.Name);
+                _methods = typeof(AsyncEnumerable).GetMethods(BindingFlags.Static | BindingFlags.Public).ToLookup(m => m.Name);
             }
 
             //
             // Find a match based on the method name and the argument types.
             //
-            MethodInfo method = s_methods[name].FirstOrDefault(m => ArgsMatch(m, args, typeArgs));
+            var method = _methods[name].FirstOrDefault(m => ArgsMatch(m, args, typeArgs));
             if (method == null)
             {
                 throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Could not find method with name '{0}' on type '{1}'.", name, typeof(Enumerable)));
@@ -423,12 +423,12 @@ namespace System.Linq
             //
             // Support the enumerable methods to be defined on another type.
             //
-            Type targetType = type.GetTypeInfo().GetCustomAttribute<LocalQueryMethodImplementationTypeAttribute>()?.TargetType ?? type;
+            var targetType = type.GetTypeInfo().GetCustomAttribute<LocalQueryMethodImplementationTypeAttribute>()?.TargetType ?? type;
 
             //
             // Get all the candidates based on name and fail if none are found.
             //
-            MethodInfo[] methods = targetType.GetMethods(flags).Where(m => m.Name == name).ToArray();
+            var methods = targetType.GetMethods(flags).Where(m => m.Name == name).ToArray();
             if (methods.Length == 0)
             {
                 throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Could not find method with name '{0}' on type '{1}'.", name, type));
@@ -437,7 +437,7 @@ namespace System.Linq
             //
             // Find a match based on arguments and fail if no match is found.
             //
-            MethodInfo method = methods.FirstOrDefault(m => ArgsMatch(m, args, typeArgs));
+            var method = methods.FirstOrDefault(m => ArgsMatch(m, args, typeArgs));
             if (method == null)
             {
                 throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Could not find a matching method with name '{0}' on type '{1}'.", name, type));
@@ -471,9 +471,9 @@ namespace System.Linq
                 //
                 if (definition.IsInterface())
                 {
-                    foreach (Type ifType in type.GetInterfaces())
+                    foreach (var ifType in type.GetInterfaces())
                     {
-                        Type res = FindGenericType(definition, ifType);
+                        var res = FindGenericType(definition, ifType);
                         if (res != null)
                         {
                             return res;

+ 5 - 10
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerableHelpers.cs

@@ -13,7 +13,7 @@ namespace System.Collections.Generic
     {
         internal static async ValueTask<T[]> ToArray<T>(IAsyncEnumerable<T> source, CancellationToken cancellationToken)
         {
-            ArrayWithLength<T> result = await ToArrayWithLength(source, cancellationToken).ConfigureAwait(false);
+            var result = await ToArrayWithLength(source, cancellationToken).ConfigureAwait(false);
             Array.Resize(ref result.Array, result.Length);
             return result.Array;
         }
@@ -23,13 +23,11 @@ namespace System.Collections.Generic
             cancellationToken.ThrowIfCancellationRequested();
 
             var result = new ArrayWithLength<T>();
-
             // Check for short circuit optimizations. This one is very unlikely
             // but could be here as a group
             if (source is ICollection<T> ic)
             {
-                int count = ic.Count;
-
+                var count = ic.Count;
                 if (count != 0)
                 {
                     // Allocate an array of the desired size, then copy the elements into it. Note that this has the same 
@@ -46,17 +44,15 @@ namespace System.Collections.Generic
             }
             else
             {
-                IAsyncEnumerator<T> en = source.GetAsyncEnumerator(cancellationToken);
+                var en = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     if (await en.MoveNextAsync().ConfigureAwait(false))
                     {
                         const int DefaultCapacity = 4;
-
                         var arr = new T[DefaultCapacity];
                         arr[0] = en.Current;
-
                         var count = 1;
 
                         while (await en.MoveNextAsync().ConfigureAwait(false))
@@ -80,8 +76,7 @@ namespace System.Collections.Generic
                                 // larger than that.  For that case, we then ensure that the newLength is large enough to hold 
                                 // the desired capacity.  This does mean that in the very rare case where we've grown to such a 
                                 // large size, each new element added after MaxArrayLength will end up doing a resize.
-                                int newLength = count << 1;
-
+                                var newLength = count << 1;
                                 if ((uint)newLength > MaxArrayLength)
                                 {
                                     newLength = MaxArrayLength <= count ? count + 1 : MaxArrayLength;
@@ -115,7 +110,7 @@ namespace System.Collections.Generic
 
         internal static async Task<Set<T>> ToSet<T>(IAsyncEnumerable<T> source, IEqualityComparer<T> comparer, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<T> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 17 - 19
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerablePartition.cs

@@ -80,7 +80,7 @@ namespace System.Linq
                     return Math.Max(await _source.CountAsync(cancellationToken).ConfigureAwait(false) - _minIndexInclusive, 0);
                 }
 
-                IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+                var en = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -93,7 +93,7 @@ namespace System.Linq
                     // At the same time, however, we are guaranteed that our max count can fit
                     // in an int because if that is true, then _minIndexInclusive must > 0.
 
-                    uint count = await SkipAndCountAsync((uint)_maxIndexInclusive + 1, en).ConfigureAwait(false);
+                    var count = await SkipAndCountAsync((uint)_maxIndexInclusive + 1, en).ConfigureAwait(false);
                     Debug.Assert(count != (uint)int.MaxValue + 1 || _minIndexInclusive > 0, "Our return value will be incorrect.");
                     return Math.Max((int)count - _minIndexInclusive, 0);
                 }
@@ -166,8 +166,7 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Skip(int count)
         {
-            int minIndex = _minIndexInclusive + count;
-
+            var minIndex = _minIndexInclusive + count;
             if (!HasLimit)
             {
                 if (minIndex < 0)
@@ -192,8 +191,7 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Take(int count)
         {
-            int maxIndex = _minIndexInclusive + count - 1;
-
+            var maxIndex = _minIndexInclusive + count - 1;
             if (!HasLimit)
             {
                 if (maxIndex < 0)
@@ -224,7 +222,7 @@ namespace System.Linq
             // If the index is negative or >= our max count, return early.
             if (index >= 0 && (!HasLimit || index < Limit))
             {
-                IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+                var en = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -246,7 +244,7 @@ namespace System.Linq
 
         public async ValueTask<Maybe<TSource>> TryGetFirstAsync(CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+            var en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -265,14 +263,14 @@ namespace System.Linq
 
         public async ValueTask<Maybe<TSource>> TryGetLastAsync(CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+            var en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (await SkipBeforeFirstAsync(en).ConfigureAwait(false) && await en.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int remaining = Limit - 1; // Max number of items left, not counting the current element.
-                    int comparand = HasLimit ? 0 : int.MinValue; // If we don't have an upper bound, have the comparison always return true.
+                    var remaining = Limit - 1; // Max number of items left, not counting the current element.
+                    var comparand = HasLimit ? 0 : int.MinValue; // If we don't have an upper bound, have the comparison always return true.
                     TSource result;
 
                     do
@@ -295,16 +293,16 @@ namespace System.Linq
 
         public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+            var en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (await SkipBeforeFirstAsync(en).ConfigureAwait(false) && await en.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int remaining = Limit - 1; // Max number of items left, not counting the current element.
-                    int comparand = HasLimit ? 0 : int.MinValue; // If we don't have an upper bound, have the comparison always return true.
+                    var remaining = Limit - 1; // Max number of items left, not counting the current element.
+                    var comparand = HasLimit ? 0 : int.MinValue; // If we don't have an upper bound, have the comparison always return true.
 
-                    int maxCapacity = HasLimit ? Limit : int.MaxValue;
+                    var maxCapacity = HasLimit ? Limit : int.MaxValue;
                     var builder = new List<TSource>(maxCapacity);
 
                     do
@@ -333,14 +331,14 @@ namespace System.Linq
         {
             var list = new List<TSource>();
 
-            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+            var en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (await SkipBeforeFirstAsync(en).ConfigureAwait(false) && await en.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int remaining = Limit - 1; // Max number of items left, not counting the current element.
-                    int comparand = HasLimit ? 0 : int.MinValue; // If we don't have an upper bound, have the comparison always return true.
+                    var remaining = Limit - 1; // Max number of items left, not counting the current element.
+                    var comparand = HasLimit ? 0 : int.MinValue; // If we don't have an upper bound, have the comparison always return true.
 
                     do
                     {
@@ -362,7 +360,7 @@ namespace System.Linq
 
         private static async ValueTask<bool> SkipBeforeAsync(int index, IAsyncEnumerator<TSource> en)
         {
-            int n = await SkipAndCountAsync(index, en).ConfigureAwait(false);
+            var n = await SkipAndCountAsync(index, en).ConfigureAwait(false);
             return n == index;
         }
 

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerator.cs

@@ -84,7 +84,7 @@ namespace System.Collections.Generic
 
             public override async ValueTask DisposeAsync()
             {
-                Func<ValueTask> dispose = Interlocked.Exchange(ref _dispose, null);
+                var dispose = Interlocked.Exchange(ref _dispose, null);
 
                 if (dispose != null)
                 {

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncIterator.cs

@@ -32,7 +32,7 @@ namespace System.Linq
         {
             cancellationToken.ThrowIfCancellationRequested(); // NB: [LDM-2018-11-28] Equivalent to async iterator behavior.
 
-            AsyncIteratorBase<TSource> enumerator = _state == AsyncIteratorState.New && _threadId == Environment.CurrentManagedThreadId
+            var enumerator = _state == AsyncIteratorState.New && _threadId == Environment.CurrentManagedThreadId
                 ? this
                 : Clone();
 

+ 15 - 21
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncListPartition.cs

@@ -27,7 +27,6 @@ namespace System.Linq
             Debug.Assert(source != null);
             Debug.Assert(minIndexInclusive >= 0);
             Debug.Assert(minIndexInclusive <= maxIndexInclusive);
-
             _source = source;
             _minIndexInclusive = minIndexInclusive;
             _maxIndexInclusive = maxIndexInclusive;
@@ -71,8 +70,7 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Skip(int count)
         {
-            int minIndex = _minIndexInclusive + count;
-
+            var minIndex = _minIndexInclusive + count;
             if ((uint)minIndex > (uint)_maxIndexInclusive)
             {
                 return AsyncEnumerable.EmptyAsyncIterator<TSource>.Instance;
@@ -85,8 +83,7 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Take(int count)
         {
-            int maxIndex = _minIndexInclusive + count - 1;
-
+            var maxIndex = _minIndexInclusive + count - 1;
             if ((uint)maxIndex >= (uint)_maxIndexInclusive)
             {
                 return this;
@@ -101,7 +98,7 @@ namespace System.Linq
         {
             if ((uint)index <= (uint)(_maxIndexInclusive - _minIndexInclusive) && index < _source.Count - _minIndexInclusive)
             {
-                TSource res = _source[_minIndexInclusive + index];
+                var res = _source[_minIndexInclusive + index];
                 return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(res));
             }
 
@@ -112,7 +109,7 @@ namespace System.Linq
         {
             if (_source.Count > _minIndexInclusive)
             {
-                TSource res = _source[_minIndexInclusive];
+                var res = _source[_minIndexInclusive];
                 return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(res));
             }
 
@@ -121,11 +118,10 @@ namespace System.Linq
 
         public ValueTask<Maybe<TSource>> TryGetLastAsync(CancellationToken cancellationToken)
         {
-            int lastIndex = _source.Count - 1;
-
+            var lastIndex = _source.Count - 1;
             if (lastIndex >= _minIndexInclusive)
             {
-                TSource res = _source[Math.Min(lastIndex, _maxIndexInclusive)];
+                var res = _source[Math.Min(lastIndex, _maxIndexInclusive)];
                 return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(res));
             }
 
@@ -136,8 +132,7 @@ namespace System.Linq
         {
             get
             {
-                int count = _source.Count;
-
+                var count = _source.Count;
                 if (count <= _minIndexInclusive)
                 {
                     return 0;
@@ -149,8 +144,7 @@ namespace System.Linq
 
         public ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
         {
-            int count = Count;
-
+            var count = Count;
             if (count == 0)
             {
                 return new ValueTask<TSource[]>(
@@ -163,7 +157,6 @@ namespace System.Linq
             }
 
             var array = new TSource[count];
-
             for (int i = 0, curIdx = _minIndexInclusive; i != array.Length; ++i, ++curIdx)
             {
                 array[i] = _source[curIdx];
@@ -174,17 +167,15 @@ namespace System.Linq
 
         public ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
         {
-            int count = Count;
-
+            var count = Count;
             if (count == 0)
             {
                 return new ValueTask<List<TSource>>(new List<TSource>());
             }
 
             var list = new List<TSource>(count);
-            int end = _minIndexInclusive + count;
-
-            for (int i = _minIndexInclusive; i != end; ++i)
+            var end = _minIndexInclusive + count;
+            for (var i = _minIndexInclusive; i != end; ++i)
             {
                 list.Add(_source[i]);
             }
@@ -192,6 +183,9 @@ namespace System.Linq
             return new ValueTask<List<TSource>>(list);
         }
 
-        public ValueTask<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken) => new ValueTask<int>(Count);
+        public ValueTask<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken)
+        {
+            return new ValueTask<int>(Count);
+        }
     }
 }

+ 2 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Disposables.cs

@@ -41,12 +41,12 @@ namespace System.Linq
 
         public void Dispose()
         {
-            IDisposable d1 = Interlocked.Exchange(ref _d1, null);
+            var d1 = Interlocked.Exchange(ref _d1, null);
             if (d1 != null)
             {
                 d1.Dispose();
 
-                IDisposable d2 = Interlocked.Exchange(ref _d2, null);
+                var d2 = Interlocked.Exchange(ref _d2, null);
                 if (d2 != null)
                 {
                     d2.Dispose();

+ 16 - 16
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Aggregate.cs

@@ -178,9 +178,9 @@ namespace System.Linq
 
         private static async Task<TResult> AggregateCore<TSource, TAccumulate, TResult>(IAsyncEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> accumulator, Func<TAccumulate, TResult> resultSelector, CancellationToken cancellationToken)
         {
-            TAccumulate acc = seed;
+            var acc = seed;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -199,7 +199,7 @@ namespace System.Linq
 
         private static async Task<TSource> AggregateCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, TSource, TSource> accumulator, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -208,7 +208,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                TSource acc = e.Current;
+                var acc = e.Current;
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
@@ -225,9 +225,9 @@ namespace System.Linq
 
         private static async Task<TResult> AggregateCore<TSource, TResult>(IAsyncEnumerable<TSource> source, TResult seed, Func<TResult, TSource, ValueTask<TResult>> accumulator, CancellationToken cancellationToken)
         {
-            TResult acc = seed;
+            var acc = seed;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -247,9 +247,9 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TResult> AggregateCore<TSource, TResult>(IAsyncEnumerable<TSource> source, TResult seed, Func<TResult, TSource, CancellationToken, ValueTask<TResult>> accumulator, CancellationToken cancellationToken)
         {
-            TResult acc = seed;
+            var acc = seed;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -269,9 +269,9 @@ namespace System.Linq
 
         private static async Task<TResult> AggregateCore<TSource, TAccumulate, TResult>(IAsyncEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, ValueTask<TAccumulate>> accumulator, Func<TAccumulate, ValueTask<TResult>> resultSelector, CancellationToken cancellationToken)
         {
-            TAccumulate acc = seed;
+            var acc = seed;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -291,9 +291,9 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TResult> AggregateCore<TSource, TAccumulate, TResult>(IAsyncEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, CancellationToken, ValueTask<TAccumulate>> accumulator, Func<TAccumulate, CancellationToken, ValueTask<TResult>> resultSelector, CancellationToken cancellationToken)
         {
-            TAccumulate acc = seed;
+            var acc = seed;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -313,7 +313,7 @@ namespace System.Linq
 
         private static async Task<TSource> AggregateCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, TSource, ValueTask<TSource>> accumulator, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -322,7 +322,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                TSource acc = e.Current;
+                var acc = e.Current;
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
@@ -340,7 +340,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TSource> AggregateCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, TSource, CancellationToken, ValueTask<TSource>> accumulator, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -349,7 +349,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                TSource acc = e.Current;
+                var acc = e.Current;
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {

+ 3 - 3
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/All.cs

@@ -64,7 +64,7 @@ namespace System.Linq
 
         private static async Task<bool> AllCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -84,7 +84,7 @@ namespace System.Linq
 
         private static async Task<bool> AllCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -105,7 +105,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<bool> AllCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Any.cs

@@ -80,7 +80,7 @@ namespace System.Linq
 
         private static async Task<bool> AnyCore<TSource>(IAsyncEnumerable<TSource> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -94,7 +94,7 @@ namespace System.Linq
 
         private static async Task<bool> AnyCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -114,7 +114,7 @@ namespace System.Linq
 
         private static async Task<bool> AnyCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -135,7 +135,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<bool> AnyCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 18 - 24
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/AppendPrepend.cs

@@ -180,8 +180,7 @@ namespace System.Linq
 
             public override async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                int count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
-
+                var count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
                 if (count == -1)
                 {
                     return await AsyncEnumerableHelpers.ToArray(this, cancellationToken).ConfigureAwait(false);
@@ -191,7 +190,6 @@ namespace System.Linq
 
                 var array = new TSource[count];
                 int index;
-
                 if (_appending)
                 {
                     index = 0;
@@ -208,7 +206,7 @@ namespace System.Linq
                 }
                 else
                 {
-                    IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+                    var en = _source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -234,18 +232,18 @@ namespace System.Linq
 
             public override async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                int count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                var count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
 
                 cancellationToken.ThrowIfCancellationRequested();
 
-                List<TSource> list = count == -1 ? new List<TSource>() : new List<TSource>(count);
+                var list = count == -1 ? new List<TSource>() : new List<TSource>(count);
 
                 if (!_appending)
                 {
                     list.Add(_item);
                 }
 
-                IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+                var en = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -271,7 +269,7 @@ namespace System.Linq
             {
                 if (_source is IAsyncIListProvider<TSource> listProv)
                 {
-                    int count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
+                    var count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
                     return count == -1 ? -1 : count + 1;
                 }
 
@@ -383,20 +381,19 @@ namespace System.Linq
 
             public override AppendPrependAsyncIterator<TSource> Append(TSource item)
             {
-                SingleLinkedNode<TSource> res = _appended != null ? _appended.Add(item) : new SingleLinkedNode<TSource>(item);
+                var res = _appended != null ? _appended.Add(item) : new SingleLinkedNode<TSource>(item);
                 return new AppendPrependNAsyncIterator<TSource>(_source, _prepended, res, _prependCount, _appendCount + 1);
             }
 
             public override AppendPrependAsyncIterator<TSource> Prepend(TSource item)
             {
-                SingleLinkedNode<TSource> res = _prepended != null ? _prepended.Add(item) : new SingleLinkedNode<TSource>(item);
+                var res = _prepended != null ? _prepended.Add(item) : new SingleLinkedNode<TSource>(item);
                 return new AppendPrependNAsyncIterator<TSource>(_source, res, _appended, _prependCount + 1, _appendCount);
             }
 
             public override async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                int count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
-
+                var count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
                 if (count == -1)
                 {
                     return await AsyncEnumerableHelpers.ToArray(this, cancellationToken).ConfigureAwait(false);
@@ -404,8 +401,7 @@ namespace System.Linq
 
                 var array = new TSource[count];
                 var index = 0;
-
-                for (SingleLinkedNode<TSource> n = _prepended; n != null; n = n.Linked)
+                for (var n = _prepended; n != null; n = n.Linked)
                 {
                     array[index] = n.Item;
                     ++index;
@@ -417,7 +413,7 @@ namespace System.Linq
                 }
                 else
                 {
-                    IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+                    var en = _source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -434,7 +430,7 @@ namespace System.Linq
                 }
 
                 index = array.Length;
-                for (SingleLinkedNode<TSource> n = _appended; n != null; n = n.Linked)
+                for (var n = _appended; n != null; n = n.Linked)
                 {
                     --index;
                     array[index] = n.Item;
@@ -445,16 +441,14 @@ namespace System.Linq
 
             public override async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                int count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
-
-                List<TSource> list = count == -1 ? new List<TSource>() : new List<TSource>(count);
-
-                for (SingleLinkedNode<TSource> n = _prepended; n != null; n = n.Linked)
+                var count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                var list = count == -1 ? new List<TSource>() : new List<TSource>(count);
+                for (var n = _prepended; n != null; n = n.Linked)
                 {
                     list.Add(n.Item);
                 }
 
-                IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
+                var en = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -470,7 +464,7 @@ namespace System.Linq
 
                 if (_appended != null)
                 {
-                    using (IEnumerator<TSource> en2 = _appended.GetEnumerator(_appendCount))
+                    using (var en2 = _appended.GetEnumerator(_appendCount))
                     {
                         while (en2.MoveNext())
                         {
@@ -486,7 +480,7 @@ namespace System.Linq
             {
                 if (_source is IAsyncIListProvider<TSource> listProv)
                 {
-                    int count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
+                    var count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
                     return count == -1 ? -1 : count + _appendCount + _prependCount;
                 }
 

+ 1 - 0
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Average.Generated.cs

@@ -689,5 +689,6 @@ namespace System.Linq
             return AverageCore(source, selector, cancellationToken);
         }
 #endif
+
     }
 }

+ 83 - 162
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Average.cs

@@ -12,7 +12,7 @@ namespace System.Linq
     {
         private static async Task<double> AverageCore(this IAsyncEnumerable<int> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<int> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -23,7 +23,6 @@ namespace System.Linq
 
                 long sum = e.Current;
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -43,7 +42,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, int> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -54,7 +53,6 @@ namespace System.Linq
 
                 long sum = selector(e.Current);
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -74,7 +72,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<int>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -85,7 +83,6 @@ namespace System.Linq
 
                 long sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -106,7 +103,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double> AverageCore<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<int>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -117,7 +114,6 @@ namespace System.Linq
 
                 long sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -138,25 +134,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore(IAsyncEnumerable<int?> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<int?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int? v = e.Current;
-
+                    var v = e.Current;
                     if (v.HasValue)
                     {
                         long sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = e.Current;
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -179,25 +172,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, int?> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int? v = selector(e.Current);
-
+                    var v = selector(e.Current);
                     if (v.HasValue)
                     {
                         long sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = selector(e.Current);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -220,25 +210,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<int?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int? v = await selector(e.Current).ConfigureAwait(false);
-
+                    var v = await selector(e.Current).ConfigureAwait(false);
                     if (v.HasValue)
                     {
                         long sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -262,25 +249,22 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<int?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
+                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                     if (v.HasValue)
                     {
                         long sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -304,7 +288,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore(IAsyncEnumerable<long> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<long> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -313,9 +297,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                long sum = e.Current;
+                var sum = e.Current;
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -335,7 +318,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, long> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -344,9 +327,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                long sum = selector(e.Current);
+                var sum = selector(e.Current);
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -366,7 +348,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<long>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -375,9 +357,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                long sum = await selector(e.Current).ConfigureAwait(false);
+                var sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -398,7 +379,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<long>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -407,9 +388,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                long sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                var sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                 long count = 1;
-
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -430,25 +410,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore(IAsyncEnumerable<long?> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<long?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long? v = e.Current;
-
+                    var v = e.Current;
                     if (v.HasValue)
                     {
-                        long sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = e.Current;
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -471,25 +448,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, long?> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long? v = selector(e.Current);
-
+                    var v = selector(e.Current);
                     if (v.HasValue)
                     {
-                        long sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = selector(e.Current);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -512,25 +486,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<long?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long? v = await selector(e.Current).ConfigureAwait(false);
-
+                    var v = await selector(e.Current).ConfigureAwait(false);
                     if (v.HasValue)
                     {
-                        long sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -554,25 +525,22 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<long?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
+                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                     if (v.HasValue)
                     {
-                        long sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -596,7 +564,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore(IAsyncEnumerable<double> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<double> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -605,9 +573,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                double sum = e.Current;
+                var sum = e.Current;
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     // There is an opportunity to short-circuit here, in that if e.Current is
@@ -627,7 +594,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, double> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -636,9 +603,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                double sum = selector(e.Current);
+                var sum = selector(e.Current);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     // There is an opportunity to short-circuit here, in that if e.Current is
@@ -658,7 +624,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<double>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -667,9 +633,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                double sum = await selector(e.Current).ConfigureAwait(false);
+                var sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     // There is an opportunity to short-circuit here, in that if e.Current is
@@ -690,7 +655,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<double>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -699,9 +664,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                double sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                var sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     // There is an opportunity to short-circuit here, in that if e.Current is
@@ -722,25 +686,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore(IAsyncEnumerable<double?> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<double?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double? v = e.Current;
-
+                    var v = e.Current;
                     if (v.HasValue)
                     {
-                        double sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = e.Current;
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -763,25 +724,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, double?> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double? v = selector(e.Current);
-
+                    var v = selector(e.Current);
                     if (v.HasValue)
                     {
-                        double sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = selector(e.Current);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -804,25 +762,22 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<double?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double? v = await selector(e.Current).ConfigureAwait(false);
-
+                    var v = await selector(e.Current).ConfigureAwait(false);
                     if (v.HasValue)
                     {
-                        double sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -846,25 +801,22 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<double?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
+                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                     if (v.HasValue)
                     {
-                        double sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -888,7 +840,7 @@ namespace System.Linq
 
         private static async Task<float> AverageCore(IAsyncEnumerable<float> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<float> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -899,7 +851,6 @@ namespace System.Linq
 
                 double sum = e.Current;
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -916,7 +867,7 @@ namespace System.Linq
 
         private static async Task<float> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, float> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -927,7 +878,6 @@ namespace System.Linq
 
                 double sum = selector(e.Current);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += selector(e.Current);
@@ -944,7 +894,7 @@ namespace System.Linq
 
         private static async Task<float> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<float>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -955,7 +905,6 @@ namespace System.Linq
 
                 double sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += await selector(e.Current).ConfigureAwait(false);
@@ -973,7 +922,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<float> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<float>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -984,7 +933,6 @@ namespace System.Linq
 
                 double sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += await selector(e.Current, cancellationToken).ConfigureAwait(false);
@@ -1002,25 +950,22 @@ namespace System.Linq
 
         private static async Task<float?> AverageCore(IAsyncEnumerable<float?> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<float?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float? v = e.Current;
-
+                    var v = e.Current;
                     if (v.HasValue)
                     {
                         double sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = e.Current;
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -1043,25 +988,22 @@ namespace System.Linq
 
         private static async Task<float?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, float?> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float? v = selector(e.Current);
-
+                    var v = selector(e.Current);
                     if (v.HasValue)
                     {
                         double sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = selector(e.Current);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -1084,25 +1026,22 @@ namespace System.Linq
 
         private static async Task<float?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<float?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float? v = await selector(e.Current).ConfigureAwait(false);
-
+                    var v = await selector(e.Current).ConfigureAwait(false);
                     if (v.HasValue)
                     {
                         double sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -1126,25 +1065,22 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<float?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<float?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
+                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                     if (v.HasValue)
                     {
                         double sum = v.GetValueOrDefault();
                         long count = 1;
-
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -1168,7 +1104,7 @@ namespace System.Linq
 
         private static async Task<decimal> AverageCore(IAsyncEnumerable<decimal> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<decimal> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1177,9 +1113,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                decimal sum = e.Current;
+                var sum = e.Current;
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -1196,7 +1131,7 @@ namespace System.Linq
 
         private static async Task<decimal> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, decimal> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1223,7 +1158,7 @@ namespace System.Linq
 
         private static async Task<decimal> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<decimal>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1232,9 +1167,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                decimal sum = await selector(e.Current).ConfigureAwait(false);
+                var sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += await selector(e.Current).ConfigureAwait(false);
@@ -1252,7 +1186,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<decimal> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<decimal>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1261,9 +1195,8 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                decimal sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                var sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                 long count = 1;
-
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += await selector(e.Current, cancellationToken).ConfigureAwait(false);
@@ -1281,23 +1214,20 @@ namespace System.Linq
 
         private static async Task<decimal?> AverageCore(IAsyncEnumerable<decimal?> source, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<decimal?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal? v = e.Current;
-
+                    var v = e.Current;
                     if (v.HasValue)
                     {
-                        decimal sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         while (await e.MoveNextAsync().ConfigureAwait(false))
                         {
                             v = e.Current;
-
                             if (v.HasValue)
                             {
                                 sum += v.GetValueOrDefault();
@@ -1319,23 +1249,20 @@ namespace System.Linq
 
         private static async Task<decimal?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, decimal?> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal? v = selector(e.Current);
-
+                    var v = selector(e.Current);
                     if (v.HasValue)
                     {
-                        decimal sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         while (await e.MoveNextAsync().ConfigureAwait(false))
                         {
                             v = selector(e.Current);
-
                             if (v.HasValue)
                             {
                                 sum += v.GetValueOrDefault();
@@ -1357,23 +1284,20 @@ namespace System.Linq
 
         private static async Task<decimal?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<decimal?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal? v = await selector(e.Current).ConfigureAwait(false);
-
+                    var v = await selector(e.Current).ConfigureAwait(false);
                     if (v.HasValue)
                     {
-                        decimal sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         while (await e.MoveNextAsync().ConfigureAwait(false))
                         {
                             v = await selector(e.Current).ConfigureAwait(false);
-
                             if (v.HasValue)
                             {
                                 sum += v.GetValueOrDefault();
@@ -1396,23 +1320,20 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<decimal?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<decimal?>> selector, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
+                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                     if (v.HasValue)
                     {
-                        decimal sum = v.GetValueOrDefault();
+                        var sum = v.GetValueOrDefault();
                         long count = 1;
-
                         while (await e.MoveNextAsync().ConfigureAwait(false))
                         {
                             v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
-
                             if (v.HasValue)
                             {
                                 sum += v.GetValueOrDefault();

+ 5 - 5
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Concat.cs

@@ -78,13 +78,13 @@ namespace System.Linq
                 var list = new List<TSource>();
                 for (var i = 0; ; i++)
                 {
-                    IAsyncEnumerable<TSource> source = GetAsyncEnumerable(i);
+                    var source = GetAsyncEnumerable(i);
                     if (source == null)
                     {
                         break;
                     }
 
-                    IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                    var e = source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -118,7 +118,7 @@ namespace System.Linq
                     var count = 0;
                     for (var i = 0; ; i++)
                     {
-                        IAsyncEnumerable<TSource> source = GetAsyncEnumerable(i);
+                        var source = GetAsyncEnumerable(i);
                         if (source == null)
                         {
                             break;
@@ -169,7 +169,7 @@ namespace System.Linq
                         //     https://github.com/dotnet/corefx/blob/f7539b726c4bc2385b7f49e5751c1cff2f2c7368/src/System.Linq/src/System/Linq/Concat.cs#L240
                         //
 
-                        IAsyncEnumerable<TSource> next = GetAsyncEnumerable(_counter++ - 1);
+                        var next = GetAsyncEnumerable(_counter++ - 1);
                         if (next != null)
                         {
                             await _enumerator.DisposeAsync().ConfigureAwait(false);
@@ -242,7 +242,7 @@ namespace System.Linq
                 // that has its _nextIndex equal to index.  If we don't find one, then it
                 // must be prior to any of them, so call GetEnumerable on the previous
                 // Concat2Iterator.  This avoids a deep recursive call chain.
-                ConcatNAsyncIterator<TSource> current = this;
+                var current = this;
                 while (true)
                 {
                     if (index == current._nextIndex)

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Contains.cs

@@ -54,7 +54,7 @@ namespace System.Linq
 
         private static async Task<bool> ContainsCore<TSource>(IAsyncEnumerable<TSource> source, TSource value, IEqualityComparer<TSource> comparer, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Count.cs

@@ -97,7 +97,7 @@ namespace System.Linq
             {
                 var count = 0;
 
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -122,7 +122,7 @@ namespace System.Linq
         {
             var count = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -149,7 +149,7 @@ namespace System.Linq
         {
             var count = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -177,7 +177,7 @@ namespace System.Linq
         {
             var count = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 2 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/DefaultIfEmpty.cs

@@ -95,13 +95,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                TSource[] array = await _source.ToArrayAsync(cancellationToken).ConfigureAwait(false);
+                var array = await _source.ToArrayAsync(cancellationToken).ConfigureAwait(false);
                 return array.Length == 0 ? new[] { _defaultValue } : array;
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                List<TSource> list = await _source.ToListAsync(cancellationToken).ConfigureAwait(false);
+                var list = await _source.ToListAsync(cancellationToken).ConfigureAwait(false);
                 if (list.Count == 0)
                 {
                     list.Add(_defaultValue);

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Distinct.cs

@@ -45,13 +45,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                Set<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                Set<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToList();
             }
 
@@ -66,7 +66,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Set<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                    var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                     return s.Count;
                 }
             }
@@ -100,7 +100,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        TSource element = _enumerator.Current;
+                        var element = _enumerator.Current;
                         _set = new Set<TSource>(_comparer);
                         _set.Add(element);
                         _current = element;

+ 2 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ElementAt.cs

@@ -30,7 +30,7 @@ namespace System.Linq
         {
             if (source is IAsyncPartition<TSource> p)
             {
-                Maybe<TSource> first = await p.TryGetElementAtAsync(index, cancellationToken).ConfigureAwait(false);
+                var first = await p.TryGetElementAtAsync(index, cancellationToken).ConfigureAwait(false);
 
                 if (first.HasValue)
                 {
@@ -46,7 +46,7 @@ namespace System.Linq
 
                 if (index >= 0)
                 {
-                    IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                    var e = source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {

+ 2 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ElementAtOrDefault.cs

@@ -30,7 +30,7 @@ namespace System.Linq
         {
             if (source is IAsyncPartition<TSource> p)
             {
-                Maybe<TSource> first = await p.TryGetElementAtAsync(index, cancellationToken).ConfigureAwait(false);
+                var first = await p.TryGetElementAtAsync(index, cancellationToken).ConfigureAwait(false);
 
                 if (first.HasValue)
                 {
@@ -49,7 +49,7 @@ namespace System.Linq
                 }
                 else
                 {
-                    IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                    var e = source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Except.cs

@@ -92,7 +92,7 @@ namespace System.Linq
 
                             if (moveNext)
                             {
-                                TSource item = _firstEnumerator.Current;
+                                var item = _firstEnumerator.Current;
                                 if (_set.Add(item))
                                 {
                                     _current = item;

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/First.cs

@@ -80,21 +80,21 @@ namespace System.Linq
 
         private static async Task<TSource> FirstCore<TSource>(IAsyncEnumerable<TSource> source, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : throw Error.NoElements();
         }
 
         private static async Task<TSource> FirstCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : throw Error.NoElements();
         }
 
         private static async Task<TSource> FirstCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : throw Error.NoElements();
         }
@@ -103,7 +103,7 @@ namespace System.Linq
 
         private static async Task<TSource> FirstCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : throw Error.NoElements();
         }

+ 11 - 11
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/FirstOrDefault.cs

@@ -80,21 +80,21 @@ namespace System.Linq
 
         private static async Task<TSource> FirstOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : default;
         }
 
         private static async Task<TSource> FirstOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : default;
         }
 
         private static async Task<TSource> FirstOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : default;
         }
@@ -102,7 +102,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TSource> FirstOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return first.HasValue ? first.Value : default;
         }
@@ -127,7 +127,7 @@ namespace System.Linq
 
                 async ValueTask<Maybe<TSource>> Core()
                 {
-                    IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                    var e = source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -150,13 +150,13 @@ namespace System.Linq
 
         private static async Task<Maybe<TSource>> TryGetFirst<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource value = e.Current;
+                    var value = e.Current;
 
                     if (predicate(value))
                     {
@@ -174,13 +174,13 @@ namespace System.Linq
 
         private static async Task<Maybe<TSource>> TryGetFirst<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource value = e.Current;
+                    var value = e.Current;
 
                     if (await predicate(value).ConfigureAwait(false))
                     {
@@ -199,13 +199,13 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<Maybe<TSource>> TryGetFirst<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource value = e.Current;
+                    var value = e.Current;
 
                     if (await predicate(value, cancellationToken).ConfigureAwait(false))
                     {

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ForEach.cs

@@ -119,7 +119,7 @@ namespace System.Linq
 
         private static async Task ForEachAsyncCore<TSource>(IAsyncEnumerable<TSource> source, Action<TSource> action, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -136,7 +136,7 @@ namespace System.Linq
 
         private static async Task ForEachAsyncCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, Task> action, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -155,7 +155,7 @@ namespace System.Linq
         {
             var index = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -174,7 +174,7 @@ namespace System.Linq
         {
             var index = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 15 - 15
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/GroupBy.cs

@@ -380,13 +380,13 @@ namespace System.Linq
 
             public async ValueTask<TResult[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                Internal.Lookup<TKey, TSource> l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
                 return l.ToArray(_resultSelector);
             }
 
             public async ValueTask<List<TResult>> ToListAsync(CancellationToken cancellationToken)
             {
-                Internal.Lookup<TKey, TSource> l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
                 return l.ToList(_resultSelector);
             }
 
@@ -401,7 +401,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.Lookup<TKey, TSource> l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -473,13 +473,13 @@ namespace System.Linq
 
             public async ValueTask<TResult[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
                 return await l.ToArray(_resultSelector).ConfigureAwait(false);
             }
 
             public async ValueTask<List<TResult>> ToListAsync(CancellationToken cancellationToken)
             {
-                Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
                 return await l.ToList(_resultSelector).ConfigureAwait(false);
             }
 
@@ -494,7 +494,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -567,13 +567,13 @@ namespace System.Linq
 
             public async ValueTask<TResult[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
                 return await l.ToArray(_resultSelector, cancellationToken).ConfigureAwait(false);
             }
 
             public async ValueTask<List<TResult>> ToListAsync(CancellationToken cancellationToken)
             {
-                Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
                 return await l.ToList(_resultSelector, cancellationToken).ConfigureAwait(false);
             }
 
@@ -588,7 +588,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -682,7 +682,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.Lookup<TKey, TElement> l = await Internal.Lookup<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.Lookup<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -775,7 +775,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.LookupWithTask<TKey, TElement> l = await Internal.LookupWithTask<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.LookupWithTask<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -869,7 +869,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.LookupWithTask<TKey, TElement> l = await Internal.LookupWithTask<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.LookupWithTask<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -960,7 +960,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.Lookup<TKey, TSource> l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -1050,7 +1050,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }
@@ -1141,7 +1141,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Internal.LookupWithTask<TKey, TSource> l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
 
                     return l.Count;
                 }

+ 9 - 9
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/GroupJoin.cs

@@ -192,10 +192,10 @@ namespace System.Linq
                         _lookup = await Internal.Lookup<TKey, TInner>.CreateForJoinAsync(_inner, _innerKeySelector, _comparer, _cancellationToken).ConfigureAwait(false);
                     }
 
-                    TOuter item = _outer.Current;
+                    var item = _outer.Current;
 
-                    TKey outerKey = _outerKeySelector(item);
-                    IAsyncEnumerable<TInner> inner = _lookup[outerKey].ToAsyncEnumerable();
+                    var outerKey = _outerKeySelector(item);
+                    var inner = _lookup[outerKey].ToAsyncEnumerable();
 
                     Current = _resultSelector(item, inner);
 
@@ -290,10 +290,10 @@ namespace System.Linq
                         _lookup = await Internal.LookupWithTask<TKey, TInner>.CreateForJoinAsync(_inner, _innerKeySelector, _comparer, _cancellationToken).ConfigureAwait(false);
                     }
 
-                    TOuter item = _outer.Current;
+                    var item = _outer.Current;
 
-                    TKey outerKey = await _outerKeySelector(item).ConfigureAwait(false);
-                    IAsyncEnumerable<TInner> inner = _lookup[outerKey].ToAsyncEnumerable();
+                    var outerKey = await _outerKeySelector(item).ConfigureAwait(false);
+                    var inner = _lookup[outerKey].ToAsyncEnumerable();
 
                     Current = await _resultSelector(item, inner).ConfigureAwait(false);
 
@@ -389,10 +389,10 @@ namespace System.Linq
                         _lookup = await Internal.LookupWithTask<TKey, TInner>.CreateForJoinAsync(_inner, _innerKeySelector, _comparer, _cancellationToken).ConfigureAwait(false);
                     }
 
-                    TOuter item = _outer.Current;
+                    var item = _outer.Current;
 
-                    TKey outerKey = await _outerKeySelector(item, _cancellationToken).ConfigureAwait(false);
-                    IAsyncEnumerable<TInner> inner = _lookup[outerKey].ToAsyncEnumerable();
+                    var outerKey = await _outerKeySelector(item, _cancellationToken).ConfigureAwait(false);
+                    var inner = _lookup[outerKey].ToAsyncEnumerable();
 
                     Current = await _resultSelector(item, inner, _cancellationToken).ConfigureAwait(false);
 

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Intersect.cs

@@ -93,7 +93,7 @@ namespace System.Linq
 
                             if (moveNext)
                             {
-                                TSource item = _firstEnumerator.Current;
+                                var item = _firstEnumerator.Current;
                                 if (_set.Remove(item))
                                 {
                                     _current = item;

+ 6 - 6
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Join.cs

@@ -196,7 +196,7 @@ namespace System.Linq
 
                             case State_DoLoop:
                                 _item = _outerEnumerator.Current;
-                                Internal.Grouping<TKey, TInner> g = _lookup.GetGrouping(_outerKeySelector(_item), create: false);
+                                var g = _lookup.GetGrouping(_outerKeySelector(_item), create: false);
                                 if (g != null)
                                 {
                                     _count = g._count;
@@ -221,7 +221,7 @@ namespace System.Linq
                                 return true;
 
                             case State_While:
-                                bool hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
+                                var hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
                                 if (hasNext)
                                 {
                                     goto case State_DoLoop;
@@ -323,7 +323,7 @@ namespace System.Linq
 
                             case State_DoLoop:
                                 _item = _outerEnumerator.Current;
-                                Internal.Grouping<TKey, TInner> g = _lookup.GetGrouping(await _outerKeySelector(_item).ConfigureAwait(false), create: false);
+                                var g = _lookup.GetGrouping(await _outerKeySelector(_item).ConfigureAwait(false), create: false);
                                 if (g != null)
                                 {
                                     _count = g._count;
@@ -348,7 +348,7 @@ namespace System.Linq
                                 return true;
 
                             case State_While:
-                                bool hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
+                                var hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
                                 if (hasNext)
                                 {
                                     goto case State_DoLoop;
@@ -451,7 +451,7 @@ namespace System.Linq
 
                             case State_DoLoop:
                                 _item = _outerEnumerator.Current;
-                                Internal.Grouping<TKey, TInner> g = _lookup.GetGrouping(await _outerKeySelector(_item, _cancellationToken).ConfigureAwait(false), create: false);
+                                var g = _lookup.GetGrouping(await _outerKeySelector(_item, _cancellationToken).ConfigureAwait(false), create: false);
                                 if (g != null)
                                 {
                                     _count = g._count;
@@ -476,7 +476,7 @@ namespace System.Linq
                                 return true;
 
                             case State_While:
-                                bool hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
+                                var hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
                                 if (hasNext)
                                 {
                                     goto case State_DoLoop;

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Last.cs

@@ -80,21 +80,21 @@ namespace System.Linq
 
         private static async Task<TSource> LastCore<TSource>(IAsyncEnumerable<TSource> source, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : throw Error.NoElements();
         }
 
         private static async Task<TSource> LastCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : throw Error.NoElements();
         }
 
         private static async Task<TSource> LastCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : throw Error.NoElements();
         }
@@ -102,7 +102,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TSource> LastCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : throw Error.NoElements();
         }

+ 12 - 13
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/LastOrDefault.cs

@@ -80,21 +80,21 @@ namespace System.Linq
 
         private static async Task<TSource> LastOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : default;
         }
 
         private static async Task<TSource> LastOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : default;
         }
 
         private static async Task<TSource> LastOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : default;
         }
@@ -102,7 +102,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TSource> LastOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : default;
         }
@@ -112,8 +112,7 @@ namespace System.Linq
         {
             if (source is IList<TSource> list)
             {
-                int count = list.Count;
-
+                var count = list.Count;
                 if (count > 0)
                 {
                     return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(list[count - 1]));
@@ -132,7 +131,7 @@ namespace System.Linq
                     var last = default(TSource);
                     var hasLast = false;
 
-                    IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                    var e = source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -159,13 +158,13 @@ namespace System.Linq
             var last = default(TSource);
             var hasLast = false;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource value = e.Current;
+                    var value = e.Current;
 
                     if (predicate(value))
                     {
@@ -192,13 +191,13 @@ namespace System.Linq
             var last = default(TSource);
             var hasLast = false;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource value = e.Current;
+                    var value = e.Current;
 
                     if (await predicate(value).ConfigureAwait(false))
                     {
@@ -226,13 +225,13 @@ namespace System.Linq
             var last = default(TSource);
             var hasLast = false;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource value = e.Current;
+                    var value = e.Current;
 
                     if (await predicate(value, cancellationToken).ConfigureAwait(false))
                     {

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/LongCount.cs

@@ -82,7 +82,7 @@ namespace System.Linq
         {
             var count = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -106,7 +106,7 @@ namespace System.Linq
         {
             var count = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -133,7 +133,7 @@ namespace System.Linq
         {
             var count = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -161,7 +161,7 @@ namespace System.Linq
         {
             var count = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 75 - 104
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Lookup.cs

@@ -30,8 +30,7 @@ namespace System.Linq.Internal
         {
             get
             {
-                Grouping<TKey, TElement> grouping = GetGrouping(key, create: false);
-
+                var grouping = GetGrouping(key, create: false);
                 if (grouping != null)
                 {
                     return grouping;
@@ -45,14 +44,19 @@ namespace System.Linq.Internal
             }
         }
 
-        public bool Contains(TKey key) => GetGrouping(key, create: false) != null;
+        public bool Contains(TKey key)
+        {
+            return GetGrouping(key, create: false) != null;
+        }
 
-        IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
+        IEnumerator IEnumerable.GetEnumerator()
+        {
+            return GetEnumerator();
+        }
 
         public IEnumerator<IGrouping<TKey, TElement>> GetEnumerator()
         {
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -65,8 +69,7 @@ namespace System.Linq.Internal
 
         public IEnumerable<TResult> ApplyResultSelector<TResult>(Func<TKey, IAsyncEnumerable<TElement>, TResult> resultSelector)
         {
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -74,7 +77,7 @@ namespace System.Linq.Internal
                     g = g._next;
                     g.Trim();
 
-                    TResult result = resultSelector(g._key, g._elements.ToAsyncEnumerable());
+                    var result = resultSelector(g._key, g._elements.ToAsyncEnumerable());
                     yield return result;
                 } while (g != _lastGrouping);
             }
@@ -88,16 +91,16 @@ namespace System.Linq.Internal
 
             var lookup = new Lookup<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TSource> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = keySelector(enu.Current);
-                    Grouping<TKey, TElement> group = lookup.GetGrouping(key, create: true);
+                    var key = keySelector(enu.Current);
+                    var group = lookup.GetGrouping(key, create: true);
 
-                    TElement element = elementSelector(enu.Current);
+                    var element = elementSelector(enu.Current);
                     group.Add(element);
                 }
             }
@@ -116,13 +119,13 @@ namespace System.Linq.Internal
 
             var lookup = new Lookup<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TElement> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = keySelector(enu.Current);
+                    var key = keySelector(enu.Current);
                     lookup.GetGrouping(key, create: true).Add(enu.Current);
                 }
             }
@@ -138,14 +141,13 @@ namespace System.Linq.Internal
         {
             var lookup = new Lookup<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TElement> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = keySelector(enu.Current);
-
+                    var key = keySelector(enu.Current);
                     if (key != null)
                     {
                         lookup.GetGrouping(key, create: true).Add(enu.Current);
@@ -162,9 +164,8 @@ namespace System.Linq.Internal
 
         internal Grouping<TKey, TElement> GetGrouping(TKey key, bool create)
         {
-            int hashCode = InternalGetHashCode(key);
-
-            for (Grouping<TKey, TElement> g = _groupings[hashCode % _groupings.Length]; g != null; g = g._hashNext)
+            var hashCode = InternalGetHashCode(key);
+            for (var g = _groupings[hashCode % _groupings.Length]; g != null; g = g._hashNext)
             {
                 if (g._hashCode == hashCode && _comparer.Equals(g._key, key))
                 {
@@ -179,8 +180,7 @@ namespace System.Linq.Internal
                     Resize();
                 }
 
-                int index = hashCode % _groupings.Length;
-
+                var index = hashCode % _groupings.Length;
                 var g = new Grouping<TKey, TElement>
                 {
                     _key = key,
@@ -188,9 +188,7 @@ namespace System.Linq.Internal
                     _elements = new TElement[1],
                     _hashNext = _groupings[index]
                 };
-
                 _groupings[index] = g;
-
                 if (_lastGrouping == null)
                 {
                     g._next = g;
@@ -203,7 +201,6 @@ namespace System.Linq.Internal
 
                 _lastGrouping = g;
                 Count++;
-
                 return g;
             }
 
@@ -220,16 +217,13 @@ namespace System.Linq.Internal
         {
             var array = new TResult[Count];
             var index = 0;
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
                 {
                     g = g._next;
                     g.Trim();
-
                     array[index] = resultSelector(g._key, g._elements.ToAsyncEnumerable());
                     ++index;
                 } while (g != _lastGrouping);
@@ -241,9 +235,7 @@ namespace System.Linq.Internal
         internal List<TResult> ToList<TResult>(Func<TKey, IAsyncEnumerable<TElement>, TResult> resultSelector)
         {
             var list = new List<TResult>(Count);
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -251,7 +243,7 @@ namespace System.Linq.Internal
                     g = g._next;
                     g.Trim();
 
-                    TResult result = resultSelector(g._key, g._elements.ToAsyncEnumerable());
+                    var result = resultSelector(g._key, g._elements.ToAsyncEnumerable());
                     list.Add(result);
                 } while (g != _lastGrouping);
             }
@@ -261,16 +253,13 @@ namespace System.Linq.Internal
 
         private void Resize()
         {
-            int newSize = checked((Count * 2) + 1);
+            var newSize = checked((Count * 2) + 1);
             var newGroupings = new Grouping<TKey, TElement>[newSize];
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             do
             {
                 g = g._next;
-
-                int index = g._hashCode % newSize;
+                var index = g._hashCode % newSize;
                 g._hashNext = newGroupings[index];
                 newGroupings[index] = g;
             } while (g != _lastGrouping);
@@ -278,7 +267,10 @@ namespace System.Linq.Internal
             _groupings = newGroupings;
         }
 
-        public ValueTask<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken) => new ValueTask<int>(Count);
+        public ValueTask<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken)
+        {
+            return new ValueTask<int>(Count);
+        }
 
         IAsyncEnumerator<IAsyncGrouping<TKey, TElement>> IAsyncEnumerable<IAsyncGrouping<TKey, TElement>>.GetAsyncEnumerator(CancellationToken cancellationToken)
         {
@@ -292,9 +284,7 @@ namespace System.Linq.Internal
             cancellationToken.ThrowIfCancellationRequested();
 
             var list = new List<IAsyncGrouping<TKey, TElement>>(Count);
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -314,9 +304,7 @@ namespace System.Linq.Internal
 
             var array = new IAsyncGrouping<TKey, TElement>[Count];
             var index = 0;
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -350,8 +338,7 @@ namespace System.Linq.Internal
         {
             get
             {
-                Grouping<TKey, TElement> grouping = GetGrouping(key, create: false);
-
+                var grouping = GetGrouping(key, create: false);
                 if (grouping != null)
                 {
                     return grouping;
@@ -365,14 +352,19 @@ namespace System.Linq.Internal
             }
         }
 
-        public bool Contains(TKey key) => GetGrouping(key, create: false) != null;
+        public bool Contains(TKey key)
+        {
+            return GetGrouping(key, create: false) != null;
+        }
 
-        IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
+        IEnumerator IEnumerable.GetEnumerator()
+        {
+            return GetEnumerator();
+        }
 
         public IEnumerator<IGrouping<TKey, TElement>> GetEnumerator()
         {
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -391,16 +383,16 @@ namespace System.Linq.Internal
 
             var lookup = new LookupWithTask<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TSource> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = await keySelector(enu.Current).ConfigureAwait(false);
-                    Grouping<TKey, TElement> group = lookup.GetGrouping(key, create: true);
+                    var key = await keySelector(enu.Current).ConfigureAwait(false);
+                    var group = lookup.GetGrouping(key, create: true);
 
-                    TElement element = await elementSelector(enu.Current).ConfigureAwait(false);
+                    var element = await elementSelector(enu.Current).ConfigureAwait(false);
                     group.Add(element);
                 }
             }
@@ -421,16 +413,16 @@ namespace System.Linq.Internal
 
             var lookup = new LookupWithTask<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TSource> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = await keySelector(enu.Current, cancellationToken).ConfigureAwait(false);
-                    Grouping<TKey, TElement> group = lookup.GetGrouping(key, create: true);
+                    var key = await keySelector(enu.Current, cancellationToken).ConfigureAwait(false);
+                    var group = lookup.GetGrouping(key, create: true);
 
-                    TElement element = await elementSelector(enu.Current, cancellationToken).ConfigureAwait(false);
+                    var element = await elementSelector(enu.Current, cancellationToken).ConfigureAwait(false);
                     group.Add(element);
                 }
             }
@@ -450,13 +442,13 @@ namespace System.Linq.Internal
 
             var lookup = new LookupWithTask<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TElement> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = await keySelector(enu.Current).ConfigureAwait(false);
+                    var key = await keySelector(enu.Current).ConfigureAwait(false);
                     lookup.GetGrouping(key, create: true).Add(enu.Current);
                 }
             }
@@ -476,13 +468,13 @@ namespace System.Linq.Internal
 
             var lookup = new LookupWithTask<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TElement> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = await keySelector(enu.Current, cancellationToken).ConfigureAwait(false);
+                    var key = await keySelector(enu.Current, cancellationToken).ConfigureAwait(false);
                     lookup.GetGrouping(key, create: true).Add(enu.Current);
                 }
             }
@@ -499,14 +491,13 @@ namespace System.Linq.Internal
         {
             var lookup = new LookupWithTask<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TElement> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = await keySelector(enu.Current).ConfigureAwait(false);
-
+                    var key = await keySelector(enu.Current).ConfigureAwait(false);
                     if (key != null)
                     {
                         lookup.GetGrouping(key, create: true).Add(enu.Current);
@@ -526,14 +517,13 @@ namespace System.Linq.Internal
         {
             var lookup = new LookupWithTask<TKey, TElement>(comparer);
 
-            IAsyncEnumerator<TElement> enu = source.GetAsyncEnumerator(cancellationToken);
+            var enu = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await enu.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TKey key = await keySelector(enu.Current, cancellationToken).ConfigureAwait(false);
-
+                    var key = await keySelector(enu.Current, cancellationToken).ConfigureAwait(false);
                     if (key != null)
                     {
                         lookup.GetGrouping(key, create: true).Add(enu.Current);
@@ -551,9 +541,8 @@ namespace System.Linq.Internal
 
         internal Grouping<TKey, TElement> GetGrouping(TKey key, bool create)
         {
-            int hashCode = InternalGetHashCode(key);
-
-            for (Grouping<TKey, TElement> g = _groupings[hashCode % _groupings.Length]; g != null; g = g._hashNext)
+            var hashCode = InternalGetHashCode(key);
+            for (var g = _groupings[hashCode % _groupings.Length]; g != null; g = g._hashNext)
             {
                 if (g._hashCode == hashCode && _comparer.Equals(g._key, key))
                 {
@@ -568,8 +557,7 @@ namespace System.Linq.Internal
                     Resize();
                 }
 
-                int index = hashCode % _groupings.Length;
-
+                var index = hashCode % _groupings.Length;
                 var g = new Grouping<TKey, TElement>
                 {
                     _key = key,
@@ -577,9 +565,7 @@ namespace System.Linq.Internal
                     _elements = new TElement[1],
                     _hashNext = _groupings[index]
                 };
-
                 _groupings[index] = g;
-
                 if (_lastGrouping == null)
                 {
                     g._next = g;
@@ -608,16 +594,13 @@ namespace System.Linq.Internal
         {
             var array = new TResult[Count];
             var index = 0;
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
                 {
                     g = g._next;
                     g.Trim();
-
                     array[index] = await resultSelector(g._key, g._elements.ToAsyncEnumerable()).ConfigureAwait(false);
                     ++index;
                 } while (g != _lastGrouping);
@@ -633,16 +616,13 @@ namespace System.Linq.Internal
 
             var array = new TResult[Count];
             var index = 0;
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
                 {
                     g = g._next;
                     g.Trim();
-
                     array[index] = await resultSelector(g._key, g._elements.ToAsyncEnumerable(), cancellationToken).ConfigureAwait(false);
                     ++index;
                 } while (g != _lastGrouping);
@@ -655,9 +635,7 @@ namespace System.Linq.Internal
         internal async Task<List<TResult>> ToList<TResult>(Func<TKey, IAsyncEnumerable<TElement>, ValueTask<TResult>> resultSelector)
         {
             var list = new List<TResult>(Count);
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -665,7 +643,7 @@ namespace System.Linq.Internal
                     g = g._next;
                     g.Trim();
 
-                    TResult result = await resultSelector(g._key, g._elements.ToAsyncEnumerable()).ConfigureAwait(false);
+                    var result = await resultSelector(g._key, g._elements.ToAsyncEnumerable()).ConfigureAwait(false);
                     list.Add(result);
                 } while (g != _lastGrouping);
             }
@@ -679,7 +657,7 @@ namespace System.Linq.Internal
             cancellationToken.ThrowIfCancellationRequested();
 
             var list = new List<TResult>(Count);
-            Grouping<TKey, TElement> g = _lastGrouping;
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -687,7 +665,7 @@ namespace System.Linq.Internal
                     g = g._next;
                     g.Trim();
 
-                    TResult result = await resultSelector(g._key, g._elements.ToAsyncEnumerable(), cancellationToken).ConfigureAwait(false);
+                    var result = await resultSelector(g._key, g._elements.ToAsyncEnumerable(), cancellationToken).ConfigureAwait(false);
                     list.Add(result);
                 } while (g != _lastGrouping);
             }
@@ -698,16 +676,13 @@ namespace System.Linq.Internal
 
         private void Resize()
         {
-            int newSize = checked((Count * 2) + 1);
+            var newSize = checked((Count * 2) + 1);
             var newGroupings = new Grouping<TKey, TElement>[newSize];
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             do
             {
                 g = g._next;
-
-                int index = g._hashCode % newSize;
+                var index = g._hashCode % newSize;
                 g._hashNext = newGroupings[index];
                 newGroupings[index] = g;
             } while (g != _lastGrouping);
@@ -732,9 +707,7 @@ namespace System.Linq.Internal
             cancellationToken.ThrowIfCancellationRequested();
 
             var list = new List<IAsyncGrouping<TKey, TElement>>(Count);
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do
@@ -754,9 +727,7 @@ namespace System.Linq.Internal
 
             var array = new IAsyncGrouping<TKey, TElement>[Count];
             var index = 0;
-
-            Grouping<TKey, TElement> g = _lastGrouping;
-
+            var g = _lastGrouping;
             if (g != null)
             {
                 do

+ 20 - 20
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Max.Generic.cs

@@ -12,11 +12,11 @@ namespace System.Linq
     {
         private static async Task<TSource> MaxCore<TSource>(IAsyncEnumerable<TSource> source, CancellationToken cancellationToken)
         {
-            Comparer<TSource> comparer = Comparer<TSource>.Default;
+            var comparer = Comparer<TSource>.Default;
             var value = default(TSource);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -33,7 +33,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource x = e.Current;
+                        var x = e.Current;
                         if (x != null && comparer.Compare(x, value) > 0)
                         {
                             value = x;
@@ -47,7 +47,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -59,7 +59,7 @@ namespace System.Linq
                     value = e.Current;
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource x = e.Current;
+                        var x = e.Current;
                         if (comparer.Compare(x, value) > 0)
                         {
                             value = x;
@@ -77,11 +77,11 @@ namespace System.Linq
 
         private static async Task<TResult> MaxCore<TSource, TResult>(IAsyncEnumerable<TSource> source, Func<TSource, TResult> selector, CancellationToken cancellationToken)
         {
-            Comparer<TResult> comparer = Comparer<TResult>.Default;
+            var comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -98,7 +98,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = selector(e.Current);
+                        var x = selector(e.Current);
                         if (x != null && comparer.Compare(x, value) > 0)
                         {
                             value = x;
@@ -112,7 +112,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -124,7 +124,7 @@ namespace System.Linq
                     value = selector(e.Current);
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = selector(e.Current);
+                        var x = selector(e.Current);
                         if (comparer.Compare(x, value) > 0)
                         {
                             value = x;
@@ -142,11 +142,11 @@ namespace System.Linq
 
         private static async Task<TResult> MaxCore<TSource, TResult>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TResult>> selector, CancellationToken cancellationToken)
         {
-            Comparer<TResult> comparer = Comparer<TResult>.Default;
+            var comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -163,7 +163,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current).ConfigureAwait(false);
+                        var x = await selector(e.Current).ConfigureAwait(false);
                         if (x != null && comparer.Compare(x, value) > 0)
                         {
                             value = x;
@@ -177,7 +177,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -189,7 +189,7 @@ namespace System.Linq
                     value = await selector(e.Current).ConfigureAwait(false);
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current).ConfigureAwait(false);
+                        var x = await selector(e.Current).ConfigureAwait(false);
                         if (comparer.Compare(x, value) > 0)
                         {
                             value = x;
@@ -208,11 +208,11 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TResult> MaxCore<TSource, TResult>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TResult>> selector, CancellationToken cancellationToken)
         {
-            Comparer<TResult> comparer = Comparer<TResult>.Default;
+            var comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -229,7 +229,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                        var x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                         if (x != null && comparer.Compare(x, value) > 0)
                         {
                             value = x;
@@ -243,7 +243,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -255,7 +255,7 @@ namespace System.Linq
                     value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                        var x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                         if (comparer.Compare(x, value) > 0)
                         {
                             value = x;

File diff suppressed because it is too large
+ 122 - 187
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Max.Primitive.cs


+ 20 - 20
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Min.Generic.cs

@@ -12,11 +12,11 @@ namespace System.Linq
     {
         private static async Task<TSource> MinCore<TSource>(IAsyncEnumerable<TSource> source, CancellationToken cancellationToken)
         {
-            Comparer<TSource> comparer = Comparer<TSource>.Default;
+            var comparer = Comparer<TSource>.Default;
             var value = default(TSource);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -33,7 +33,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource x = e.Current;
+                        var x = e.Current;
                         if (x != null && comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -47,7 +47,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -59,7 +59,7 @@ namespace System.Linq
                     value = e.Current;
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TSource x = e.Current;
+                        var x = e.Current;
                         if (comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -77,11 +77,11 @@ namespace System.Linq
 
         private static async Task<TResult> MinCore<TSource, TResult>(IAsyncEnumerable<TSource> source, Func<TSource, TResult> selector, CancellationToken cancellationToken)
         {
-            Comparer<TResult> comparer = Comparer<TResult>.Default;
+            var comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -98,7 +98,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = selector(e.Current);
+                        var x = selector(e.Current);
                         if (x != null && comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -112,7 +112,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -124,7 +124,7 @@ namespace System.Linq
                     value = selector(e.Current);
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = selector(e.Current);
+                        var x = selector(e.Current);
                         if (comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -142,11 +142,11 @@ namespace System.Linq
 
         private static async Task<TResult> MinCore<TSource, TResult>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TResult>> selector, CancellationToken cancellationToken)
         {
-            Comparer<TResult> comparer = Comparer<TResult>.Default;
+            var comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -163,7 +163,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current).ConfigureAwait(false);
+                        var x = await selector(e.Current).ConfigureAwait(false);
                         if (x != null && comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -177,7 +177,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -189,7 +189,7 @@ namespace System.Linq
                     value = await selector(e.Current).ConfigureAwait(false);
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current).ConfigureAwait(false);
+                        var x = await selector(e.Current).ConfigureAwait(false);
                         if (comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -208,11 +208,11 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TResult> MinCore<TSource, TResult>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TResult>> selector, CancellationToken cancellationToken)
         {
-            Comparer<TResult> comparer = Comparer<TResult>.Default;
+            var comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -229,7 +229,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                        var x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                         if (x != null && comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -243,7 +243,7 @@ namespace System.Linq
             }
             else
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -255,7 +255,7 @@ namespace System.Linq
                     value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        TResult x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                        var x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                         if (comparer.Compare(x, value) < 0)
                         {
                             value = x;

File diff suppressed because it is too large
+ 150 - 222
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Min.Primitive.cs


+ 1 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OfType.cs

@@ -55,8 +55,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            object item = _enumerator.Current;
-
+                            var item = _enumerator.Current;
                             if (item is TResult res)
                             {
                                 _current = res;

+ 12 - 12
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OrderedAsyncEnumerable.cs

@@ -49,7 +49,7 @@ namespace System.Linq
                 case AsyncIteratorState.Allocated:
                     _buffer = await _source.ToArrayAsync(_cancellationToken).ConfigureAwait(false); // TODO: Use buffer.
 
-                    AsyncEnumerableSorter<TElement> sorter = GetAsyncEnumerableSorter(_cancellationToken);
+                    var sorter = GetAsyncEnumerableSorter(_cancellationToken);
                     _indexes = await sorter.Sort(_buffer, _buffer.Length).ConfigureAwait(false);
                     _index = 0;
 
@@ -650,9 +650,9 @@ namespace System.Linq
 
             do
             {
-                int i = left;
-                int j = right;
-                int x = map[i + ((j - i) >> 1)];
+                var i = left;
+                var j = right;
+                var x = map[i + ((j - i) >> 1)];
 
                 do
                 {
@@ -673,7 +673,7 @@ namespace System.Linq
 
                     if (i < j)
                     {
-                        int temp = map[i];
+                        var temp = map[i];
                         map[i] = map[j];
                         map[j] = temp;
                     }
@@ -774,12 +774,12 @@ namespace System.Linq
 
         protected override int QuickSelect(int[] map, int right, int idx)
         {
-            int left = 0;
+            var left = 0;
             do
             {
-                int i = left;
-                int j = right;
-                int x = map[i + ((j - i) >> 1)];
+                var i = left;
+                var j = right;
+                var x = map[i + ((j - i) >> 1)];
 
                 do
                 {
@@ -800,7 +800,7 @@ namespace System.Linq
 
                     if (i < j)
                     {
-                        int temp = map[i];
+                        var temp = map[i];
                         map[i] = map[j];
                         map[j] = temp;
                     }
@@ -845,8 +845,8 @@ namespace System.Linq
 
         protected override int Min(int[] map, int count)
         {
-            int index = 0;
-            for (int i = 1; i < count; i++)
+            var index = 0;
+            for (var i = 1; i < count; i++)
             {
                 if (CompareKeys(map[i], map[index]) < 0)
                 {

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Range.cs

@@ -16,7 +16,7 @@ namespace System.Linq
             if (count < 0)
                 throw Error.ArgumentOutOfRange(nameof(count));
 
-            long end = (long)start + count - 1L;
+            var end = (long)start + count - 1L;
             if (count < 0 || end > int.MaxValue)
                 throw Error.ArgumentOutOfRange(nameof(count));
 
@@ -45,7 +45,7 @@ namespace System.Linq
 
             public IAsyncPartition<int> Skip(int count)
             {
-                int n = _end - _start;
+                var n = _end - _start;
 
                 if (count >= n)
                 {
@@ -57,7 +57,7 @@ namespace System.Linq
 
             public IAsyncPartition<int> Take(int count)
             {
-                int n = _end - _start;
+                var n = _end - _start;
 
                 if (count >= n)
                 {
@@ -71,7 +71,7 @@ namespace System.Linq
             {
                 var res = new int[_end - _start];
 
-                int value = _start;
+                var value = _start;
 
                 for (var i = 0; i < res.Length; i++)
                 {

+ 3 - 3
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Reverse.cs

@@ -36,13 +36,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                TSource[] array = await _source.ToArrayAsync(cancellationToken).ConfigureAwait(false);
+                var array = await _source.ToArrayAsync(cancellationToken).ConfigureAwait(false);
 
                 // Array.Reverse() involves boxing for non-primitive value types, but
                 // checking that has its own cost, so just use this approach for all types.
                 for (int i = 0, j = array.Length - 1; i < j; ++i, --j)
                 {
-                    TSource temp = array[i];
+                    var temp = array[i];
                     array[i] = array[j];
                     array[j] = temp;
                 }
@@ -52,7 +52,7 @@ namespace System.Linq
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                List<TSource> list = await _source.ToListAsync(cancellationToken).ConfigureAwait(false);
+                var list = await _source.ToListAsync(cancellationToken).ConfigureAwait(false);
 
                 list.Reverse();
                 return list;

+ 15 - 15
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Select.cs

@@ -222,7 +222,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -281,9 +281,9 @@ namespace System.Linq
 
                 cancellationToken.ThrowIfCancellationRequested();
 
-                int count = 0;
+                var count = 0;
 
-                foreach (TSource item in _source)
+                foreach (var item in _source)
                 {
                     _selector(item);
 
@@ -305,7 +305,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                int n = _source.Count;
+                var n = _source.Count;
 
                 var res = new TResult[n];
 
@@ -321,7 +321,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                int n = _source.Count;
+                var n = _source.Count;
 
                 var res = new List<TResult>(n);
 
@@ -526,7 +526,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -591,7 +591,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -660,9 +660,9 @@ namespace System.Linq
                 {
                     cancellationToken.ThrowIfCancellationRequested();
 
-                    int count = 0;
+                    var count = 0;
 
-                    foreach (TSource item in _source)
+                    foreach (var item in _source)
                     {
                         await _selector(item).ConfigureAwait(false);
 
@@ -685,7 +685,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                int n = _source.Count;
+                var n = _source.Count;
 
                 var res = new TResult[n];
 
@@ -701,7 +701,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                int n = _source.Count;
+                var n = _source.Count;
 
                 var res = new List<TResult>(n);
 
@@ -782,9 +782,9 @@ namespace System.Linq
                 {
                     cancellationToken.ThrowIfCancellationRequested();
 
-                    int count = 0;
+                    var count = 0;
 
-                    foreach (TSource item in _source)
+                    foreach (var item in _source)
                     {
                         await _selector(item, cancellationToken).ConfigureAwait(false);
 
@@ -807,7 +807,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                int n = _source.Count;
+                var n = _source.Count;
 
                 var res = new TResult[n];
 
@@ -823,7 +823,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                int n = _source.Count;
+                var n = _source.Count;
 
                 var res = new List<TResult>(n);
 

+ 12 - 12
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SelectMany.cs

@@ -215,7 +215,7 @@ namespace System.Linq
                                         await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                                     }
 
-                                    IAsyncEnumerable<TResult> inner = _selector(_sourceEnumerator.Current);
+                                    var inner = _selector(_sourceEnumerator.Current);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -306,7 +306,7 @@ namespace System.Linq
                                         await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                                     }
 
-                                    IAsyncEnumerable<TResult> inner = await _selector(_sourceEnumerator.Current).ConfigureAwait(false);
+                                    var inner = await _selector(_sourceEnumerator.Current).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -398,7 +398,7 @@ namespace System.Linq
                                         await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                                     }
 
-                                    IAsyncEnumerable<TResult> inner = await _selector(_sourceEnumerator.Current, _cancellationToken).ConfigureAwait(false);
+                                    var inner = await _selector(_sourceEnumerator.Current, _cancellationToken).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -497,7 +497,7 @@ namespace System.Linq
                                     }
 
                                     _currentSource = _sourceEnumerator.Current;
-                                    IAsyncEnumerable<TCollection> inner = _collectionSelector(_currentSource);
+                                    var inner = _collectionSelector(_currentSource);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -595,7 +595,7 @@ namespace System.Linq
                                     }
 
                                     _currentSource = _sourceEnumerator.Current;
-                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource).ConfigureAwait(false);
+                                    var inner = await _collectionSelector(_currentSource).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -694,7 +694,7 @@ namespace System.Linq
                                     }
 
                                     _currentSource = _sourceEnumerator.Current;
-                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource, _cancellationToken).ConfigureAwait(false);
+                                    var inner = await _collectionSelector(_currentSource, _cancellationToken).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -801,7 +801,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    IAsyncEnumerable<TCollection> inner = _collectionSelector(_currentSource, _index);
+                                    var inner = _collectionSelector(_currentSource, _index);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -907,7 +907,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource, _index).ConfigureAwait(false);
+                                    var inner = await _collectionSelector(_currentSource, _index).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1014,7 +1014,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource, _index, _cancellationToken).ConfigureAwait(false);
+                                    var inner = await _collectionSelector(_currentSource, _index, _cancellationToken).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1113,7 +1113,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    IAsyncEnumerable<TResult> inner = _selector(_sourceEnumerator.Current, _index);
+                                    var inner = _selector(_sourceEnumerator.Current, _index);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1211,7 +1211,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    IAsyncEnumerable<TResult> inner = await _selector(_sourceEnumerator.Current, _index).ConfigureAwait(false);
+                                    var inner = await _selector(_sourceEnumerator.Current, _index).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1310,7 +1310,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    IAsyncEnumerable<TResult> inner = await _selector(_sourceEnumerator.Current, _index, _cancellationToken).ConfigureAwait(false);
+                                    var inner = await _selector(_sourceEnumerator.Current, _index, _cancellationToken).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;

+ 2 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SequenceEqual.cs

@@ -84,11 +84,11 @@ namespace System.Linq
 
             async Task<bool> Core()
             {
-                IAsyncEnumerator<TSource> e1 = first.GetAsyncEnumerator(cancellationToken);
+                var e1 = first.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
-                    IAsyncEnumerator<TSource> e2 = second.GetAsyncEnumerator(cancellationToken);
+                    var e2 = second.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {

+ 8 - 8
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Single.cs

@@ -91,7 +91,7 @@ namespace System.Linq
                 throw Error.MoreThanOneElement();
             }
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -100,7 +100,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                TSource result = e.Current;
+                var result = e.Current;
                 if (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     throw Error.MoreThanOneElement();
@@ -116,13 +116,13 @@ namespace System.Linq
 
         private static async Task<TSource> SingleCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource result = e.Current;
+                    var result = e.Current;
 
                     if (predicate(result))
                     {
@@ -148,13 +148,13 @@ namespace System.Linq
 
         private static async Task<TSource> SingleCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource result = e.Current;
+                    var result = e.Current;
 
                     if (await predicate(result).ConfigureAwait(false))
                     {
@@ -181,13 +181,13 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TSource> SingleCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource result = e.Current;
+                    var result = e.Current;
 
                     if (await predicate(result, cancellationToken).ConfigureAwait(false))
                     {

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SingleLinkedNode.cs

@@ -58,7 +58,7 @@ namespace System.Linq
         public int GetCount()
         {
             var count = 0;
-            for (SingleLinkedNode<TSource> node = this; node != null; node = node.Linked)
+            for (var node = this; node != null; node = node.Linked)
             {
                 count++;
             }
@@ -86,7 +86,7 @@ namespace System.Linq
         {
             Debug.Assert(index >= 0 && index < GetCount());
 
-            SingleLinkedNode<TSource> node = this;
+            var node = this;
             for (; index > 0; index--)
             {
                 node = node.Linked;
@@ -105,8 +105,8 @@ namespace System.Linq
             Debug.Assert(count == GetCount());
 
             var array = new TSource[count];
-            int index = count;
-            for (SingleLinkedNode<TSource> node = this; node != null; node = node.Linked)
+            var index = count;
+            for (var node = this; node != null; node = node.Linked)
             {
                 --index;
                 array[index] = node.Item;

+ 8 - 8
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SingleOrDefault.cs

@@ -91,7 +91,7 @@ namespace System.Linq
                 throw Error.MoreThanOneElement();
             }
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -100,7 +100,7 @@ namespace System.Linq
                     return default;
                 }
 
-                TSource result = e.Current;
+                var result = e.Current;
 
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                 {
@@ -117,13 +117,13 @@ namespace System.Linq
 
         private static async Task<TSource> SingleOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, bool> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource result = e.Current;
+                    var result = e.Current;
 
                     if (predicate(result))
                     {
@@ -149,13 +149,13 @@ namespace System.Linq
 
         private static async Task<TSource> SingleOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource result = e.Current;
+                    var result = e.Current;
 
                     if (await predicate(result).ConfigureAwait(false))
                     {
@@ -182,13 +182,13 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<TSource> SingleOrDefaultCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<bool>> predicate, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource result = e.Current;
+                    var result = e.Current;
 
                     if (await predicate(result, cancellationToken).ConfigureAwait(false))
                     {

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SkipLast.cs

@@ -81,7 +81,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             _queue.Enqueue(item);
 
                             if (_queue.Count > _count)

+ 6 - 6
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SkipWhile.cs

@@ -118,7 +118,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource element = _enumerator.Current;
+                            var element = _enumerator.Current;
                             if (!_predicate(element))
                             {
                                 _doMoveNext = false;
@@ -196,7 +196,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource element = _enumerator.Current;
+                            var element = _enumerator.Current;
 
                             checked
                             {
@@ -278,7 +278,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource element = _enumerator.Current;
+                            var element = _enumerator.Current;
                             if (!await _predicate(element).ConfigureAwait(false))
                             {
                                 _doMoveNext = false;
@@ -355,7 +355,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource element = _enumerator.Current;
+                            var element = _enumerator.Current;
                             if (!await _predicate(element, _cancellationToken).ConfigureAwait(false))
                             {
                                 _doMoveNext = false;
@@ -434,7 +434,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource element = _enumerator.Current;
+                            var element = _enumerator.Current;
 
                             checked
                             {
@@ -519,7 +519,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource element = _enumerator.Current;
+                            var element = _enumerator.Current;
 
                             checked
                             {

+ 110 - 110
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Sum.Generated.cs

@@ -80,9 +80,9 @@ namespace System.Linq
 
         private static async Task<int> SumCore(IAsyncEnumerable<int> source, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<int> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -104,15 +104,15 @@ namespace System.Linq
 
         private static async Task<int> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, int> selector, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     checked
                     {
@@ -130,15 +130,15 @@ namespace System.Linq
 
         private static async Task<int> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<int>> selector, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     checked
                     {
@@ -157,15 +157,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<int> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<int>> selector, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     checked
                     {
@@ -252,9 +252,9 @@ namespace System.Linq
 
         private static async Task<long> SumCore(IAsyncEnumerable<long> source, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<long> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -276,15 +276,15 @@ namespace System.Linq
 
         private static async Task<long> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, long> selector, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     checked
                     {
@@ -302,15 +302,15 @@ namespace System.Linq
 
         private static async Task<long> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<long>> selector, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     checked
                     {
@@ -329,15 +329,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<long> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<long>> selector, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     checked
                     {
@@ -424,9 +424,9 @@ namespace System.Linq
 
         private static async Task<float> SumCore(IAsyncEnumerable<float> source, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<float> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -445,15 +445,15 @@ namespace System.Linq
 
         private static async Task<float> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, float> selector, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     sum += value;
                 }
@@ -468,15 +468,15 @@ namespace System.Linq
 
         private static async Task<float> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<float>> selector, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     sum += value;
                 }
@@ -492,15 +492,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<float> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<float>> selector, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     sum += value;
                 }
@@ -584,9 +584,9 @@ namespace System.Linq
 
         private static async Task<double> SumCore(IAsyncEnumerable<double> source, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<double> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -605,15 +605,15 @@ namespace System.Linq
 
         private static async Task<double> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, double> selector, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     sum += value;
                 }
@@ -628,15 +628,15 @@ namespace System.Linq
 
         private static async Task<double> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<double>> selector, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     sum += value;
                 }
@@ -652,15 +652,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<double>> selector, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     sum += value;
                 }
@@ -744,9 +744,9 @@ namespace System.Linq
 
         private static async Task<decimal> SumCore(IAsyncEnumerable<decimal> source, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<decimal> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -765,15 +765,15 @@ namespace System.Linq
 
         private static async Task<decimal> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, decimal> selector, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     sum += value;
                 }
@@ -788,15 +788,15 @@ namespace System.Linq
 
         private static async Task<decimal> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<decimal>> selector, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     sum += value;
                 }
@@ -812,15 +812,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<decimal> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<decimal>> selector, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     sum += value;
                 }
@@ -904,9 +904,9 @@ namespace System.Linq
 
         private static async Task<int?> SumCore(IAsyncEnumerable<int?> source, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<int?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -928,15 +928,15 @@ namespace System.Linq
 
         private static async Task<int?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, int?> selector, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int? value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     checked
                     {
@@ -954,15 +954,15 @@ namespace System.Linq
 
         private static async Task<int?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<int?>> selector, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int? value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     checked
                     {
@@ -981,15 +981,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<int?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<int?>> selector, CancellationToken cancellationToken)
         {
-            int sum = 0;
+            var sum = 0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    int? value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     checked
                     {
@@ -1076,9 +1076,9 @@ namespace System.Linq
 
         private static async Task<long?> SumCore(IAsyncEnumerable<long?> source, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<long?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1100,15 +1100,15 @@ namespace System.Linq
 
         private static async Task<long?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, long?> selector, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long? value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     checked
                     {
@@ -1126,15 +1126,15 @@ namespace System.Linq
 
         private static async Task<long?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<long?>> selector, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long? value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     checked
                     {
@@ -1153,15 +1153,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<long?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<long?>> selector, CancellationToken cancellationToken)
         {
-            long sum = 0L;
+            var sum = 0L;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    long? value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     checked
                     {
@@ -1248,9 +1248,9 @@ namespace System.Linq
 
         private static async Task<float?> SumCore(IAsyncEnumerable<float?> source, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<float?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1269,15 +1269,15 @@ namespace System.Linq
 
         private static async Task<float?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, float?> selector, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float? value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1292,15 +1292,15 @@ namespace System.Linq
 
         private static async Task<float?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<float?>> selector, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float? value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1316,15 +1316,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<float?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<float?>> selector, CancellationToken cancellationToken)
         {
-            float sum = 0.0f;
+            var sum = 0.0f;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    float? value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1408,9 +1408,9 @@ namespace System.Linq
 
         private static async Task<double?> SumCore(IAsyncEnumerable<double?> source, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<double?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1429,15 +1429,15 @@ namespace System.Linq
 
         private static async Task<double?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, double?> selector, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double? value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1452,15 +1452,15 @@ namespace System.Linq
 
         private static async Task<double?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<double?>> selector, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double? value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1476,15 +1476,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<double?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<double?>> selector, CancellationToken cancellationToken)
         {
-            double sum = 0.0;
+            var sum = 0.0;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    double? value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1568,9 +1568,9 @@ namespace System.Linq
 
         private static async Task<decimal?> SumCore(IAsyncEnumerable<decimal?> source, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<decimal?> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1589,15 +1589,15 @@ namespace System.Linq
 
         private static async Task<decimal?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, decimal?> selector, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal? value = selector(e.Current);
+                    var value = selector(e.Current);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1612,15 +1612,15 @@ namespace System.Linq
 
         private static async Task<decimal?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<decimal?>> selector, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal? value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
                     sum += value.GetValueOrDefault();
                 }
@@ -1636,15 +1636,15 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<decimal?> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<decimal?>> selector, CancellationToken cancellationToken)
         {
-            decimal sum = 0m;
+            var sum = 0m;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    decimal? value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     sum += value.GetValueOrDefault();
                 }

+ 11 - 12
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Sum.Generated.tt

@@ -34,7 +34,6 @@ var os = new[]
 foreach (var o in os)
 {
     var n = o.type.EndsWith("?") ? ".GetValueOrDefault()" : "";
-    var nonNullType = o.type.EndsWith("?") ? o.type.TrimEnd('?') : o.type;
 #>
         public static Task<<#=o.type#>> SumAsync(this IAsyncEnumerable<<#=o.type#>> source)
         {
@@ -106,9 +105,9 @@ foreach (var o in os)
 
         private static async Task<<#=o.type#>> SumCore(IAsyncEnumerable<<#=o.type#>> source, CancellationToken cancellationToken)
         {
-            <#=nonNullType#> sum = <#=o.zero#>;
+            var sum = <#=o.zero#>;
 
-            IAsyncEnumerator<<#=o.type#>> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -143,15 +142,15 @@ else
 
         private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, <#=o.type#>> selector, CancellationToken cancellationToken)
         {
-            <#=nonNullType#> sum = <#=o.zero#>;
+            var sum = <#=o.zero#>;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    <#=o.type#> value = selector(e.Current);
+                    var value = selector(e.Current);
 
 <#
 if (o.@checked)
@@ -182,15 +181,15 @@ else
 
         private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken)
         {
-            <#=nonNullType#> sum = <#=o.zero#>;
+            var sum = <#=o.zero#>;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    <#=o.type#> value = await selector(e.Current).ConfigureAwait(false);
+                    var value = await selector(e.Current).ConfigureAwait(false);
 
 <#
 if (o.@checked)
@@ -222,15 +221,15 @@ else
 #if !NO_DEEP_CANCELLATION
         private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken)
         {
-            <#=nonNullType#> sum = <#=o.zero#>;
+            var sum = <#=o.zero#>;
 
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    <#=o.type#> value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
 <#
 if (o.@checked)

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeLast.cs

@@ -80,7 +80,7 @@ namespace System.Linq
                                 {
                                     if (_count > 0)
                                     {
-                                        TSource item = _enumerator.Current;
+                                        var item = _enumerator.Current;
                                         if (_queue.Count >= _count)
                                         {
                                             _queue.Dequeue();

+ 6 - 6
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeWhile.cs

@@ -120,7 +120,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             if (!_predicate(item))
                             {
                                 break;
@@ -184,7 +184,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -253,7 +253,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             if (!await _predicate(item).ConfigureAwait(false))
                             {
                                 break;
@@ -318,7 +318,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             if (!await _predicate(item, _cancellationToken).ConfigureAwait(false))
                             {
                                 break;
@@ -383,7 +383,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -454,7 +454,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {

+ 4 - 4
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToAsyncEnumerable.Observable.cs

@@ -76,7 +76,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (true)
                         {
-                            bool completed = Volatile.Read(ref _completed);
+                            var completed = Volatile.Read(ref _completed);
 
                             if (_values.TryDequeue(out _current))
                             {
@@ -84,7 +84,7 @@ namespace System.Linq
                             }
                             else if (completed)
                             {
-                                Exception error = _error;
+                                var error = _error;
 
                                 if (error != null)
                                 {
@@ -131,7 +131,7 @@ namespace System.Linq
             {
                 while (true)
                 {
-                    TaskCompletionSource<bool> signal = Volatile.Read(ref _signal);
+                    var signal = Volatile.Read(ref _signal);
 
                     if (signal == TaskExt.True)
                     {
@@ -170,7 +170,7 @@ namespace System.Linq
 
                 while (true)
                 {
-                    TaskCompletionSource<bool> signal = Volatile.Read(ref _signal);
+                    var signal = Volatile.Read(ref _signal);
 
                     if (signal != null)
                     {

+ 12 - 12
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToDictionary.cs

@@ -240,7 +240,7 @@ namespace System.Linq
 
         private static async Task<Dictionary<TKey, TElement>> ToDictionaryCore<TSource, TKey, TElement>(IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -248,10 +248,10 @@ namespace System.Linq
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource x = e.Current;
+                    var x = e.Current;
 
-                    TKey key = keySelector(x);
-                    TElement value = elementSelector(x);
+                    var key = keySelector(x);
+                    var value = elementSelector(x);
 
                     d.Add(key, value);
                 }
@@ -266,7 +266,7 @@ namespace System.Linq
 
         private static async Task<Dictionary<TKey, TElement>> ToDictionaryCore<TSource, TKey, TElement>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector, Func<TSource, ValueTask<TElement>> elementSelector, IEqualityComparer<TKey> comparer, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -274,10 +274,10 @@ namespace System.Linq
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource x = e.Current;
+                    var x = e.Current;
 
-                    TKey key = await keySelector(x).ConfigureAwait(false);
-                    TElement value = await elementSelector(x).ConfigureAwait(false);
+                    var key = await keySelector(x).ConfigureAwait(false);
+                    var value = await elementSelector(x).ConfigureAwait(false);
 
                     d.Add(key, value);
                 }
@@ -293,7 +293,7 @@ namespace System.Linq
 #if !NO_DEEP_CANCELLATION
         private static async Task<Dictionary<TKey, TElement>> ToDictionaryCore<TSource, TKey, TElement>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector, Func<TSource, CancellationToken, ValueTask<TElement>> elementSelector, IEqualityComparer<TKey> comparer, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -301,10 +301,10 @@ namespace System.Linq
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource x = e.Current;
+                    var x = e.Current;
 
-                    TKey key = await keySelector(x, cancellationToken).ConfigureAwait(false);
-                    TElement value = await elementSelector(x, cancellationToken).ConfigureAwait(false);
+                    var key = await keySelector(x, cancellationToken).ConfigureAwait(false);
+                    var value = await elementSelector(x, cancellationToken).ConfigureAwait(false);
 
                     d.Add(key, value);
                 }

+ 3 - 3
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToEnumerable.cs

@@ -21,7 +21,7 @@ namespace System.Linq
 
             IEnumerable<TSource> Core()
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(default);
+                var e = source.GetAsyncEnumerator(default);
 
                 try
                 {
@@ -46,7 +46,7 @@ namespace System.Linq
 
         private static void Wait(ValueTask task)
         {
-            Runtime.CompilerServices.ValueTaskAwaiter awaiter = task.GetAwaiter();
+            var awaiter = task.GetAwaiter();
 
             if (!awaiter.IsCompleted)
             {
@@ -59,7 +59,7 @@ namespace System.Linq
 
         private static T Wait<T>(ValueTask<T> task)
         {
-            Runtime.CompilerServices.ValueTaskAwaiter<T> awaiter = task.GetAwaiter();
+            var awaiter = task.GetAwaiter();
 
             if (!awaiter.IsCompleted)
             {

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToHashSet.cs

@@ -44,7 +44,7 @@ namespace System.Linq
 
         private static async Task<HashSet<TSource>> ToHashSetCore<TSource>(IAsyncEnumerable<TSource> source, IEqualityComparer<TSource> comparer, CancellationToken cancellationToken)
         {
-            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+            var e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToList.cs

@@ -35,7 +35,7 @@ namespace System.Linq
 
             async Task<List<TSource>> Core()
             {
-                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToObservable.cs

@@ -28,7 +28,7 @@ namespace System.Linq
             public IDisposable Subscribe(IObserver<T> observer)
             {
                 var ctd = new CancellationTokenDisposable();
-                IAsyncEnumerator<T> e = _source.GetAsyncEnumerator(ctd.Token);
+                var e = _source.GetAsyncEnumerator(ctd.Token);
 
                 async void Core()
                 {

+ 12 - 12
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Union.cs

@@ -86,7 +86,7 @@ namespace System.Linq
             private void StoreFirst()
             {
                 var set = new Set<TSource>(_comparer);
-                TSource element = _enumerator.Current;
+                var element = _enumerator.Current;
                 set.Add(element);
                 _current = element;
                 _set = set;
@@ -94,12 +94,12 @@ namespace System.Linq
 
             private async ValueTask<bool> GetNextAsync()
             {
-                Set<TSource> set = _set;
+                var set = _set;
                 Debug.Assert(set != null);
 
                 while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                 {
-                    TSource element = _enumerator.Current;
+                    var element = _enumerator.Current;
                     if (set.Add(element))
                     {
                         _current = element;
@@ -117,11 +117,11 @@ namespace System.Linq
                     case AsyncIteratorState.Allocated:
                         _index = 0;
 
-                        for (IAsyncEnumerable<TSource> enumerable = GetEnumerable(0); enumerable != null; enumerable = GetEnumerable(_index))
+                        for (var enumerable = GetEnumerable(0); enumerable != null; enumerable = GetEnumerable(_index))
                         {
                             ++_index;
 
-                            IAsyncEnumerator<TSource> enumerator = enumerable.GetAsyncEnumerator(_cancellationToken);
+                            var enumerator = enumerable.GetAsyncEnumerator(_cancellationToken);
 
                             if (await enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
@@ -143,7 +143,7 @@ namespace System.Linq
                                 return true;
                             }
 
-                            IAsyncEnumerable<TSource> enumerable = GetEnumerable(_index);
+                            var enumerable = GetEnumerable(_index);
                             if (enumerable == null)
                             {
                                 break;
@@ -168,13 +168,13 @@ namespace System.Linq
 
                 for (var index = 0; ; ++index)
                 {
-                    IAsyncEnumerable<TSource> enumerable = GetEnumerable(index);
+                    var enumerable = GetEnumerable(index);
                     if (enumerable == null)
                     {
                         return set;
                     }
 
-                    IAsyncEnumerator<TSource> e = enumerable.GetAsyncEnumerator(cancellationToken);
+                    var e = enumerable.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -192,13 +192,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                Set<TSource> set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return set.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                Set<TSource> set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                var set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return set.ToList();
             }
 
@@ -213,7 +213,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    Set<TSource> set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                    var set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                     return set.Count;
                 }
             }
@@ -255,7 +255,7 @@ namespace System.Linq
 
             internal override UnionAsyncIterator<TSource> Union(IAsyncEnumerable<TSource> next)
             {
-                SingleLinkedNode<IAsyncEnumerable<TSource>> sources = new SingleLinkedNode<IAsyncEnumerable<TSource>>(_first).Add(_second).Add(next);
+                var sources = new SingleLinkedNode<IAsyncEnumerable<TSource>>(_first).Add(_second).Add(next);
                 return new UnionAsyncIteratorN<TSource>(sources, 2, _comparer);
             }
         }

+ 7 - 7
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Where.cs

@@ -163,7 +163,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             if (_predicate(item))
                             {
                                 _current = item;
@@ -225,7 +225,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -295,7 +295,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             if (await _predicate(item).ConfigureAwait(false))
                             {
                                 _current = item;
@@ -360,7 +360,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             if (await _predicate(item, _cancellationToken).ConfigureAwait(false))
                             {
                                 _current = item;
@@ -423,7 +423,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -492,7 +492,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
 
                             checked
                             {
@@ -567,7 +567,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            TSource item = _enumerator.Current;
+                            var item = _enumerator.Current;
                             if (_predicate(item))
                             {
                                 _current = _selector(item);

+ 11 - 21
Ix.NET/Source/System.Linq.Async/System/Linq/Set.cs

@@ -35,9 +35,8 @@ namespace System.Linq
 #if DEBUG
             Debug.Assert(!_haveRemoved, "This class is optimized for never calling Add after Remove. If your changes need to do so, undo that optimization.");
 #endif
-            int hashCode = InternalGetHashCode(value);
-
-            for (int i = _buckets[hashCode % _buckets.Length] - 1; i >= 0; i = _slots[i]._next)
+            var hashCode = InternalGetHashCode(value);
+            for (var i = _buckets[hashCode % _buckets.Length] - 1; i >= 0; i = _slots[i]._next)
             {
                 if (_slots[i]._hashCode == hashCode && _comparer.Equals(_slots[i]._value, value))
                 {
@@ -50,15 +49,13 @@ namespace System.Linq
                 Resize();
             }
 
-            int index = Count;
+            var index = Count;
             Count++;
-
-            int bucket = hashCode % _buckets.Length;
+            var bucket = hashCode % _buckets.Length;
             _slots[index]._hashCode = hashCode;
             _slots[index]._value = value;
             _slots[index]._next = _buckets[bucket] - 1;
             _buckets[bucket] = index + 1;
-
             return true;
         }
 
@@ -68,11 +65,10 @@ namespace System.Linq
 #if DEBUG
             _haveRemoved = true;
 #endif
-            int hashCode = InternalGetHashCode(value);
-            int bucket = hashCode % _buckets.Length;
-            int last = -1;
-
-            for (int i = _buckets[bucket] - 1; i >= 0; last = i, i = _slots[i]._next)
+            var hashCode = InternalGetHashCode(value);
+            var bucket = hashCode % _buckets.Length;
+            var last = -1;
+            for (var i = _buckets[bucket] - 1; i >= 0; last = i, i = _slots[i]._next)
             {
                 if (_slots[i]._hashCode == hashCode && _comparer.Equals(_slots[i]._value, value))
                 {
@@ -88,7 +84,6 @@ namespace System.Linq
                     _slots[i]._hashCode = -1;
                     _slots[i]._value = default;
                     _slots[i]._next = -1;
-
                     return true;
                 }
             }
@@ -108,7 +103,6 @@ namespace System.Linq
             Debug.Assert(!_haveRemoved, "Optimized ToArray cannot be called if Remove has been called.");
 #endif
             var array = new TElement[Count];
-
             for (var i = 0; i != array.Length; ++i)
             {
                 array[i] = _slots[i]._value;
@@ -122,9 +116,8 @@ namespace System.Linq
 #if DEBUG
             Debug.Assert(!_haveRemoved, "Optimized ToList cannot be called if Remove has been called.");
 #endif
-            int count = Count;
+            var count = Count;
             var list = new List<TElement>(count);
-
             for (var i = 0; i != count; ++i)
             {
                 list.Add(_slots[i]._value);
@@ -135,16 +128,13 @@ namespace System.Linq
 
         private void Resize()
         {
-            int newSize = checked((Count * 2) + 1);
+            var newSize = checked((Count * 2) + 1);
             var newBuckets = new int[newSize];
             var newSlots = new Slot[newSize];
-
             Array.Copy(_slots, 0, newSlots, 0, Count);
-
             for (var i = 0; i < Count; i++)
             {
-                int bucket = newSlots[i]._hashCode % newSize;
-
+                var bucket = newSlots[i]._hashCode % newSize;
                 newSlots[i]._next = newBuckets[bucket] - 1;
                 newBuckets[bucket] = i + 1;
             }

Some files were not shown because too many files changed in this diff