1
0
Эх сурвалжийг харах

Use only var when type is obvious.

Bart De Smet 6 жил өмнө
parent
commit
876ee400a9
76 өөрчлөгдсөн 1379 нэмэгдсэн , 1205 устгасан
  1. 83 185
      .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. 10 5
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerableHelpers.cs
  18. 19 17
      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. 21 15
      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. 24 18
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/AppendPrepend.cs
  27. 0 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Average.Generated.cs
  28. 162 83
      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. 13 12
      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. 104 75
      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. 187 122
      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. 222 150
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Min.Primitive.cs
  52. 2 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OfType.cs
  53. 6 6
      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. 12 11
      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. 21 11
      Ix.NET/Source/System.Linq.Async/System/Linq/Set.cs

+ 83 - 185
.editorconfig

@@ -1,216 +1,104 @@
-# EditorConfig is awesome:http://EditorConfig.org
-# From https://raw.githubusercontent.com/dotnet/roslyn/master/.editorconfig
+# editorconfig.org
 
 # top-most EditorConfig file
 root = true
 
-# Don't use tabs for indentation.
+# Default settings:
+# A newline ending every file
+# Use 4 spaces as 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
-
-# Xml project files
-[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
-indent_size = 2
-
-# Xml config files
-[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
-indent_size = 2
-
-# Yml/Yaml files
-[*.{yaml,yml}]
-indent_size = 2
-
-# Powershell files
-[*.ps1]
-indent_size = 2
 
-# JSON files
-[*.json]
+[project.json]
 indent_size = 2
 
-# Shell scripts
-[*.sh]
-end_of_line = lf
-
-[*.{cmd,bat}]
-end_of_line = crlf
+# 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
 
-# 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
+# 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
 
-# Avoid "this." and "Me." if not necessary
+# avoid this. unless absolutely 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
 
-# Use language keywords instead of framework type names for type references
+# 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
 dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
 dotnet_style_predefined_type_for_member_access = true:suggestion
 
-# 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
+# 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
 
-# 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_symbols.constant_fields.applicable_kinds   = field
+dotnet_naming_symbols.constant_fields.required_modifiers = const
 
-# Comment this group and uncomment out the next group if you don't want _ prefixed fields.
+dotnet_naming_style.pascal_case_style.capitalization = pascal_case
 
-# 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
+# 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
-#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_symbols.static_fields.applicable_kinds   = field
+dotnet_naming_symbols.static_fields.required_modifiers = static
 
-# 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
+dotnet_naming_style.static_prefix_style.required_prefix = s_
+dotnet_naming_style.static_prefix_style.capitalization = camel_case 
 
-dotnet_naming_symbols.interface_symbols.applicable_kinds                                              = interface
-dotnet_naming_symbols.interface_symbols.applicable_accessibilities                                    = *
+# 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.parameter_symbols.applicable_kinds                                              = parameter
-dotnet_naming_symbols.parameter_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.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
+dotnet_naming_style.camel_case_underscore_style.required_prefix = _
+dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case 
 
 # Code style defaults
+dotnet_sort_system_directives_first = true
 csharp_preserve_single_line_blocks = true
-csharp_preserve_single_line_statements = true
+csharp_preserve_single_line_statements = false
 
-# Prefer method-like constructs to have a block body
+# 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
 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
@@ -220,15 +108,6 @@ 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
@@ -253,10 +132,29 @@ 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

@@ -74,13 +74,13 @@ namespace System.Linq
                 switch (_state)
                 {
                     case AsyncIteratorState.Allocated:
-                        var firstEnumerator = _first.GetAsyncEnumerator(_cancellationToken);
-                        var secondEnumerator = _second.GetAsyncEnumerator(_cancellationToken);
+                        IAsyncEnumerator<TSource> firstEnumerator = _first.GetAsyncEnumerator(_cancellationToken);
+                        IAsyncEnumerator<TSource> secondEnumerator = _second.GetAsyncEnumerator(_cancellationToken);
 
-                        var firstMoveNext = firstEnumerator.MoveNextAsync().AsTask();
-                        var secondMoveNext = secondEnumerator.MoveNextAsync().AsTask();
+                        Task<bool> firstMoveNext = firstEnumerator.MoveNextAsync().AsTask();
+                        Task<bool> secondMoveNext = secondEnumerator.MoveNextAsync().AsTask();
 
-                        var winner = await Task.WhenAny(firstMoveNext, secondMoveNext).ConfigureAwait(false);
+                        Task<bool> 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:
@@ -95,7 +95,7 @@ namespace System.Linq
                         {
                             _enumerator = firstEnumerator;
 
-                            var ignored = secondMoveNext.ContinueWith(_ =>
+                            Task ignored = secondMoveNext.ContinueWith(_ =>
                             {
                                 secondEnumerator.DisposeAsync();
                             });
@@ -104,7 +104,7 @@ namespace System.Linq
                         {
                             _enumerator = secondEnumerator;
 
-                            var ignored = firstMoveNext.ContinueWith(_ =>
+                            Task ignored = firstMoveNext.ContinueWith(_ =>
                             {
                                 firstEnumerator.DisposeAsync();
                             });
@@ -169,20 +169,20 @@ namespace System.Linq
                 switch (_state)
                 {
                     case AsyncIteratorState.Allocated:
-                        var n = _sources.Length;
+                        int n = _sources.Length;
 
                         var enumerators = new IAsyncEnumerator<TSource>[n];
                         var moveNexts = new ValueTask<bool>[n];
 
                         for (var i = 0; i < n; i++)
                         {
-                            var enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
+                            IAsyncEnumerator<TSource> enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
 
                             enumerators[i] = enumerator;
                             moveNexts[i] = enumerator.MoveNextAsync();
                         }
 
-                        var winner = await Task.WhenAny(moveNexts.Select(t => t.AsTask())).ConfigureAwait(false);
+                        Task<bool> 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:
@@ -193,7 +193,7 @@ namespace System.Linq
                         // The approach below has one drawback, namely that exceptions raised by any loser are dropped on the floor.
                         //
 
-                        var winnerIndex = Array.IndexOf(moveNexts, winner);
+                        int winnerIndex = Array.IndexOf(moveNexts, winner);
 
                         _enumerator = enumerators[winnerIndex];
 
@@ -201,7 +201,7 @@ namespace System.Linq
                         {
                             if (i != winnerIndex)
                             {
-                                var ignored = moveNexts[i].AsTask().ContinueWith(_ =>
+                                Task ignored = moveNexts[i].AsTask().ContinueWith(_ =>
                                 {
                                     enumerators[i].DisposeAsync();
                                 });

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

@@ -91,13 +91,13 @@ namespace System.Linq
                             {
                                 if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                                 {
-                                    var item = _enumerator.Current;
+                                    TSource item = _enumerator.Current;
                                     if (_index++ % _skip == 0)
                                     {
                                         _buffers.Enqueue(new List<TSource>(_count));
                                     }
 
-                                    foreach (var buffer in _buffers)
+                                    foreach (IList<TSource> 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 dipose of the previous enumerator before
                                     // invoking the handler, but we use this order to preserve
                                     // current behavior
-                                    var inner = _handler(ex);
-                                    var err = inner.GetAsyncEnumerator(_cancellationToken);
+                                    IAsyncEnumerable<TSource> inner = _handler(ex);
+                                    IAsyncEnumerator<TSource> err = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     if (_enumerator != null)
                                     {
@@ -233,8 +233,8 @@ namespace System.Linq
                                     // Note: Ideally we'd dipose of the previous enumerator before
                                     // invoking the handler, but we use this order to preserve
                                     // current behavior
-                                    var inner = await _handler(ex).ConfigureAwait(false);
-                                    var err = inner.GetAsyncEnumerator(_cancellationToken);
+                                    IAsyncEnumerable<TSource> inner = await _handler(ex).ConfigureAwait(false);
+                                    IAsyncEnumerator<TSource> err = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     if (_enumerator != null)
                                     {
@@ -327,8 +327,8 @@ namespace System.Linq
                                     // Note: Ideally we'd dipose of the previous enumerator before
                                     // invoking the handler, but we use this order to preserve
                                     // current behavior
-                                    var inner = await _handler(ex, _cancellationToken).ConfigureAwait(false);
-                                    var err = inner.GetAsyncEnumerator(_cancellationToken);
+                                    IAsyncEnumerable<TSource> inner = await _handler(ex, _cancellationToken).ConfigureAwait(false);
+                                    IAsyncEnumerator<TSource> 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)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s;
             }
 
@@ -133,13 +133,13 @@ namespace System.Linq
                 var count = 0;
                 var s = new Set<TKey>(_comparer);
 
-                var enu = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var item = enu.Current;
+                        TSource item = enu.Current;
                         if (s.Add(_keySelector(item)))
                         {
                             count++;
@@ -184,7 +184,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        var element = _enumerator.Current;
+                        TSource element = _enumerator.Current;
                         _set = new Set<TKey>(_comparer);
                         _set.Add(_keySelector(element));
                         _current = element;
@@ -215,13 +215,13 @@ namespace System.Linq
                 var s = new Set<TKey>(_comparer);
                 var r = new List<TSource>();
 
-                var enu = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var item = enu.Current;
+                        TSource item = enu.Current;
                         if (s.Add(_keySelector(item)))
                         {
                             r.Add(item);
@@ -258,13 +258,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s;
             }
 
@@ -278,13 +278,13 @@ namespace System.Linq
                 var count = 0;
                 var s = new Set<TKey>(_comparer);
 
-                var enu = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var item = enu.Current;
+                        TSource item = enu.Current;
                         if (s.Add(await _keySelector(item).ConfigureAwait(false)))
                         {
                             count++;
@@ -329,7 +329,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        var element = _enumerator.Current;
+                        TSource element = _enumerator.Current;
                         _set = new Set<TKey>(_comparer);
                         _set.Add(await _keySelector(element).ConfigureAwait(false));
                         _current = element;
@@ -360,13 +360,13 @@ namespace System.Linq
                 var s = new Set<TKey>(_comparer);
                 var r = new List<TSource>();
 
-                var enu = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var item = enu.Current;
+                        TSource item = enu.Current;
                         if (s.Add(await _keySelector(item).ConfigureAwait(false)))
                         {
                             r.Add(item);
@@ -404,13 +404,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s;
             }
 
@@ -424,13 +424,13 @@ namespace System.Linq
                 var count = 0;
                 var s = new Set<TKey>(_comparer);
 
-                var enu = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var item = enu.Current;
+                        TSource item = enu.Current;
                         if (s.Add(await _keySelector(item, cancellationToken).ConfigureAwait(false)))
                         {
                             count++;
@@ -475,7 +475,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        var element = _enumerator.Current;
+                        TSource element = _enumerator.Current;
                         _set = new Set<TKey>(_comparer);
                         _set.Add(await _keySelector(element, _cancellationToken).ConfigureAwait(false));
                         _current = element;
@@ -506,13 +506,13 @@ namespace System.Linq
                 var s = new Set<TKey>(_comparer);
                 var r = new List<TSource>();
 
-                var enu = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> enu = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
                     while (await enu.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var item = enu.Current;
+                        TSource item = enu.Current;
                         if (s.Add(await _keySelector(item, cancellationToken).ConfigureAwait(false)))
                         {
                             r.Add(item);

+ 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             var comparerEquals = false;
 
                             if (_hasCurrentValue)
@@ -230,8 +230,8 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
-                            var key = _keySelector(item);
+                            TSource item = _enumerator.Current;
+                            TKey key = _keySelector(item);
                             var comparerEquals = false;
 
                             if (_hasCurrentKey)
@@ -301,8 +301,8 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
-                            var key = await _keySelector(item).ConfigureAwait(false);
+                            TSource item = _enumerator.Current;
+                            TKey key = await _keySelector(item).ConfigureAwait(false);
                             var comparerEquals = false;
 
                             if (_hasCurrentKey)
@@ -373,8 +373,8 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
-                            var key = await _keySelector(item, _cancellationToken).ConfigureAwait(false);
+                            TSource item = _enumerator.Current;
+                            TKey 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)
                                 {
-                                    var src = _queue.Dequeue();
+                                    IAsyncEnumerable<TSource> src = _queue.Dequeue();
 
                                     if (_enumerator != null)
                                     {
@@ -114,8 +114,8 @@ namespace System.Linq
 
                             if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
-                                var item = _enumerator.Current;
-                                var next = _selector(item);
+                                TSource item = _enumerator.Current;
+                                IAsyncEnumerable<TSource> next = _selector(item);
                                 _queue.Enqueue(next);
                                 _current = item;
                                 return true;
@@ -187,7 +187,7 @@ namespace System.Linq
                             {
                                 if (_queue.Count > 0)
                                 {
-                                    var src = _queue.Dequeue();
+                                    IAsyncEnumerable<TSource> src = _queue.Dequeue();
 
                                     if (_enumerator != null)
                                     {
@@ -204,8 +204,8 @@ namespace System.Linq
 
                             if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
-                                var item = _enumerator.Current;
-                                var next = await _selector(item).ConfigureAwait(false);
+                                TSource item = _enumerator.Current;
+                                IAsyncEnumerable<TSource> next = await _selector(item).ConfigureAwait(false);
                                 _queue.Enqueue(next);
                                 _current = item;
                                 return true;
@@ -278,7 +278,7 @@ namespace System.Linq
                             {
                                 if (_queue.Count > 0)
                                 {
-                                    var src = _queue.Dequeue();
+                                    IAsyncEnumerable<TSource> src = _queue.Dequeue();
 
                                     if (_enumerator != null)
                                     {
@@ -295,8 +295,8 @@ namespace System.Linq
 
                             if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
-                                var item = _enumerator.Current;
-                                var next = await _selector(item, _cancellationToken).ConfigureAwait(false);
+                                TSource item = _enumerator.Current;
+                                IAsyncEnumerable<TSource> 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;
             }
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                var max = e.Current;
+                TSource max = e.Current;
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var cur = e.Current;
+                    TSource cur = e.Current;
 
                     if (comparer.Compare(cur, max) > 0)
                     {

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

@@ -59,13 +59,13 @@ namespace System.Linq
             {
                 if (_enumerators != null)
                 {
-                    var n = _enumerators.Length;
+                    int n = _enumerators.Length;
 
                     var disposes = new ValueTask[n];
 
                     for (var i = 0; i < n; i++)
                     {
-                        var dispose = _enumerators[i].DisposeAsync();
+                        ValueTask dispose = _enumerators[i].DisposeAsync();
                         disposes[i] = dispose;
                     }
 
@@ -81,7 +81,7 @@ namespace System.Linq
                 switch (_state)
                 {
                     case AsyncIteratorState.Allocated:
-                        var n = _sources.Length;
+                        int n = _sources.Length;
 
                         _enumerators = new IAsyncEnumerator<TSource>[n];
                         _moveNexts = new ValueTask<bool>[n];
@@ -89,7 +89,7 @@ namespace System.Linq
 
                         for (var i = 0; i < n; i++)
                         {
-                            var enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
+                            IAsyncEnumerator<TSource> enumerator = _sources[i].GetAsyncEnumerator(_cancellationToken);
                             _enumerators[i] = enumerator;
                             _moveNexts[i] = enumerator.MoveNextAsync();
                         }
@@ -106,9 +106,9 @@ namespace System.Linq
                             //         want to consider a "prefer fairness" option.
                             //
 
-                            var moveNext = await Task.WhenAny(_moveNexts.Select(t => t.AsTask())).ConfigureAwait(false);
+                            Task<bool> moveNext = await Task.WhenAny(_moveNexts.Select(t => t.AsTask())).ConfigureAwait(false);
 
-                            var index = Array.IndexOf(_moveNexts, moveNext);
+                            int index = Array.IndexOf(_moveNexts, moveNext);
 
                             if (!await moveNext.ConfigureAwait(false))
                             {
@@ -117,7 +117,7 @@ namespace System.Linq
                             }
                             else
                             {
-                                var enumerator = _enumerators[index];
+                                IAsyncEnumerator<TSource> 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;
             }
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                var min = e.Current;
+                TSource min = e.Current;
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var cur = e.Current;
+                    TSource 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>();
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                var current = e.Current;
-                var resKey = keySelector(current);
+                TSource current = e.Current;
+                TKey resKey = keySelector(current);
                 result.Add(current);
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var cur = e.Current;
-                    var key = keySelector(cur);
+                    TSource cur = e.Current;
+                    TKey key = keySelector(cur);
 
-                    var cmp = compare(key, resKey);
+                    int cmp = compare(key, resKey);
                     if (cmp == 0)
                     {
                         result.Add(cur);
@@ -190,23 +190,23 @@ namespace System.Linq
         {
             var result = new List<TSource>();
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                var current = e.Current;
-                var resKey = await keySelector(current).ConfigureAwait(false);
+                TSource current = e.Current;
+                TKey resKey = await keySelector(current).ConfigureAwait(false);
                 result.Add(current);
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var cur = e.Current;
-                    var key = await keySelector(cur).ConfigureAwait(false);
+                    TSource cur = e.Current;
+                    TKey key = await keySelector(cur).ConfigureAwait(false);
 
-                    var cmp = compare(key, resKey);
+                    int cmp = compare(key, resKey);
                     if (cmp == 0)
                     {
                         result.Add(cur);
@@ -231,23 +231,23 @@ namespace System.Linq
         {
             var result = new List<TSource>();
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (!await e.MoveNextAsync().ConfigureAwait(false))
                     throw Error.NoElements();
 
-                var current = e.Current;
-                var resKey = await keySelector(current, cancellationToken).ConfigureAwait(false);
+                TSource current = e.Current;
+                TKey resKey = await keySelector(current, cancellationToken).ConfigureAwait(false);
                 result.Add(current);
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var cur = e.Current;
-                    var key = await keySelector(cur, cancellationToken).ConfigureAwait(false);
+                    TSource cur = e.Current;
+                    TKey key = await keySelector(cur, cancellationToken).ConfigureAwait(false);
 
-                    var cmp = compare(key, resKey);
+                    int cmp = compare(key, resKey);
                     if (cmp == 0)
                     {
                         result.Add(cur);

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

@@ -30,7 +30,7 @@ namespace System.Linq
         {
             while (true)
             {
-                foreach (var item in source)
+                foreach (TSource item in source)
                 {
                     yield return item;
                 }
@@ -41,7 +41,7 @@ namespace System.Linq
         {
             for (var i = 0; i < count; i++)
             {
-                foreach (var item in source)
+                foreach (TSource 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             if (!_hasSeed)
                             {
                                 _hasSeed = true;
@@ -199,7 +199,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             _accumulated = _accumulator(_accumulated, item);
                             _current = _accumulated;
                             return true;
@@ -265,7 +265,7 @@ namespace System.Linq
 
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             if (!_hasSeed)
                             {
                                 _hasSeed = true;
@@ -340,7 +340,7 @@ namespace System.Linq
 
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             if (!_hasSeed)
                             {
                                 _hasSeed = true;
@@ -413,7 +413,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             _accumulated = await _accumulator(_accumulated, item).ConfigureAwait(false);
                             _current = _accumulated;
                             return true;
@@ -479,7 +479,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource 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()
                 {
-                    var result = _moveNextThrows;
+                    ValueTask<bool> 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:
-                        var moveNext = _enumerator.MoveNextAsync();
+                        ValueTask<bool> moveNext = _enumerator.MoveNextAsync();
 
                         if (!moveNext.IsCompleted)
                         {
@@ -81,9 +81,9 @@ namespace System.Linq
                             {
                                 var delay = Task.Delay(_timeout, delayCts.Token);
 
-                                var next = moveNext.AsTask();
+                                Task<bool> next = moveNext.AsTask();
 
-                                var winner = await Task.WhenAny(next, delay).ConfigureAwait(false);
+                                Task 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> _methods;
+        private static volatile ILookup<string, MethodInfo> s_methods;
 
         protected override Expression VisitConstant(ConstantExpression node)
         {
@@ -34,7 +34,7 @@ namespace System.Linq
             //
             if (enumerableQuery.Enumerable != null)
             {
-                var publicType = GetPublicType(enumerableQuery.Enumerable.GetType());
+                Type publicType = GetPublicType(enumerableQuery.Enumerable.GetType());
                 return Expression.Constant(enumerableQuery.Enumerable, publicType);
             }
 
@@ -46,8 +46,8 @@ namespace System.Linq
 
         protected override Expression VisitMethodCall(MethodCallExpression node)
         {
-            var obj = Visit(node.Object);
-            var args = Visit(node.Arguments);
+            Expression obj = Visit(node.Object);
+            ReadOnlyCollection<Expression> 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;
             }
 
-            var typeArgs = node.Method.IsGenericMethod ? node.Method.GetGenericArguments() : null;
+            Type[] 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 (var ifType in type.GetInterfaces())
+            foreach (Type ifType in type.GetInterfaces())
             {
                 if (ifType.IsGenericType())
                 {
-                    var def = ifType.GetGenericTypeDefinition();
+                    Type 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.
             //
-            var parameters = method.GetParameters();
+            ParameterInfo[] 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++)
             {
-                var type = parameters[i].ParameterType;
+                Type type = parameters[i].ParameterType;
 
                 //
                 // Hardening against reflection quirks.
@@ -218,7 +218,7 @@ namespace System.Linq
                     type = type.GetElementType();
                 }
 
-                var expression = args[i];
+                Expression 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.
             //
-            var parameters = method.GetParameters();
+            ParameterInfo[] 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++)
                 {
-                    var expression = argList[i];
-                    var parameterInfo = parameters[i];
+                    Expression expression = argList[i];
+                    ParameterInfo 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)
         {
-            var res = expression;
+            Expression 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)
                     {
-                        var unquotedType = StripExpression(res.Type);
+                        Type unquotedType = StripExpression(res.Type);
                         if (type.IsAssignableFrom(unquotedType))
                         {
                             var newArrayExpression = (NewArrayExpression)res;
 
                             var count = newArrayExpression.Expressions.Count;
-                            var elementType = type.GetElementType();
+                            Type 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.
             //
-            var elemType = type.IsArray ? type.GetElementType() : type;
+            Type elemType = type.IsArray ? type.GetElementType() : type;
 
             //
             // Try to find Expression<T> and obtain T.
             //
-            var genType = FindGenericType(typeof(Expression<>), elemType);
+            Type 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 (_methods == null)
+            if (s_methods == null)
             {
-                _methods = typeof(AsyncEnumerable).GetMethods(BindingFlags.Static | BindingFlags.Public).ToLookup(m => m.Name);
+                s_methods = typeof(AsyncEnumerable).GetMethods(BindingFlags.Static | BindingFlags.Public).ToLookup(m => m.Name);
             }
 
             //
             // Find a match based on the method name and the argument types.
             //
-            var method = _methods[name].FirstOrDefault(m => ArgsMatch(m, args, typeArgs));
+            MethodInfo method = s_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.
             //
-            var targetType = type.GetTypeInfo().GetCustomAttribute<LocalQueryMethodImplementationTypeAttribute>()?.TargetType ?? type;
+            Type targetType = type.GetTypeInfo().GetCustomAttribute<LocalQueryMethodImplementationTypeAttribute>()?.TargetType ?? type;
 
             //
             // Get all the candidates based on name and fail if none are found.
             //
-            var methods = targetType.GetMethods(flags).Where(m => m.Name == name).ToArray();
+            MethodInfo[] 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.
             //
-            var method = methods.FirstOrDefault(m => ArgsMatch(m, args, typeArgs));
+            MethodInfo 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 (var ifType in type.GetInterfaces())
+                    foreach (Type ifType in type.GetInterfaces())
                     {
-                        var res = FindGenericType(definition, ifType);
+                        Type res = FindGenericType(definition, ifType);
                         if (res != null)
                         {
                             return res;

+ 10 - 5
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)
         {
-            var result = await ToArrayWithLength(source, cancellationToken).ConfigureAwait(false);
+            ArrayWithLength<T> result = await ToArrayWithLength(source, cancellationToken).ConfigureAwait(false);
             Array.Resize(ref result.Array, result.Length);
             return result.Array;
         }
@@ -23,11 +23,13 @@ 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)
             {
-                var count = ic.Count;
+                int 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 
@@ -44,15 +46,17 @@ namespace System.Collections.Generic
             }
             else
             {
-                var en = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<T> 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))
@@ -76,7 +80,8 @@ 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.
-                                var newLength = count << 1;
+                                int newLength = count << 1;
+
                                 if ((uint)newLength > MaxArrayLength)
                                 {
                                     newLength = MaxArrayLength <= count ? count + 1 : MaxArrayLength;
@@ -110,7 +115,7 @@ namespace System.Collections.Generic
 
         internal static async Task<Set<T>> ToSet<T>(IAsyncEnumerable<T> source, IEqualityComparer<T> comparer, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<T> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

+ 19 - 17
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);
                 }
 
-                var en = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> 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.
 
-                    var count = await SkipAndCountAsync((uint)_maxIndexInclusive + 1, en).ConfigureAwait(false);
+                    uint 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,7 +166,8 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Skip(int count)
         {
-            var minIndex = _minIndexInclusive + count;
+            int minIndex = _minIndexInclusive + count;
+
             if (!HasLimit)
             {
                 if (minIndex < 0)
@@ -191,7 +192,8 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Take(int count)
         {
-            var maxIndex = _minIndexInclusive + count - 1;
+            int maxIndex = _minIndexInclusive + count - 1;
+
             if (!HasLimit)
             {
                 if (maxIndex < 0)
@@ -222,7 +224,7 @@ namespace System.Linq
             // If the index is negative or >= our max count, return early.
             if (index >= 0 && (!HasLimit || index < Limit))
             {
-                var en = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -244,7 +246,7 @@ namespace System.Linq
 
         public async ValueTask<Maybe<TSource>> TryGetFirstAsync(CancellationToken cancellationToken)
         {
-            var en = _source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -263,14 +265,14 @@ namespace System.Linq
 
         public async ValueTask<Maybe<TSource>> TryGetLastAsync(CancellationToken cancellationToken)
         {
-            var en = _source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (await SkipBeforeFirstAsync(en).ConfigureAwait(false) && await en.MoveNextAsync().ConfigureAwait(false))
                 {
-                    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 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.
                     TSource result;
 
                     do
@@ -293,16 +295,16 @@ namespace System.Linq
 
         public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
         {
-            var en = _source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (await SkipBeforeFirstAsync(en).ConfigureAwait(false) && await en.MoveNextAsync().ConfigureAwait(false))
                 {
-                    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 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 maxCapacity = HasLimit ? Limit : int.MaxValue;
+                    int maxCapacity = HasLimit ? Limit : int.MaxValue;
                     var builder = new List<TSource>(maxCapacity);
 
                     do
@@ -331,14 +333,14 @@ namespace System.Linq
         {
             var list = new List<TSource>();
 
-            var en = _source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 if (await SkipBeforeFirstAsync(en).ConfigureAwait(false) && await en.MoveNextAsync().ConfigureAwait(false))
                 {
-                    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 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.
 
                     do
                     {
@@ -360,7 +362,7 @@ namespace System.Linq
 
         private static async ValueTask<bool> SkipBeforeAsync(int index, IAsyncEnumerator<TSource> en)
         {
-            var n = await SkipAndCountAsync(index, en).ConfigureAwait(false);
+            int 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()
             {
-                var dispose = Interlocked.Exchange(ref _dispose, null);
+                Func<ValueTask> 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.
 
-            var enumerator = _state == AsyncIteratorState.New && _threadId == Environment.CurrentManagedThreadId
+            AsyncIteratorBase<TSource> enumerator = _state == AsyncIteratorState.New && _threadId == Environment.CurrentManagedThreadId
                 ? this
                 : Clone();
 

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

@@ -27,6 +27,7 @@ namespace System.Linq
             Debug.Assert(source != null);
             Debug.Assert(minIndexInclusive >= 0);
             Debug.Assert(minIndexInclusive <= maxIndexInclusive);
+
             _source = source;
             _minIndexInclusive = minIndexInclusive;
             _maxIndexInclusive = maxIndexInclusive;
@@ -70,7 +71,8 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Skip(int count)
         {
-            var minIndex = _minIndexInclusive + count;
+            int minIndex = _minIndexInclusive + count;
+
             if ((uint)minIndex > (uint)_maxIndexInclusive)
             {
                 return AsyncEnumerable.EmptyAsyncIterator<TSource>.Instance;
@@ -83,7 +85,8 @@ namespace System.Linq
 
         public IAsyncPartition<TSource> Take(int count)
         {
-            var maxIndex = _minIndexInclusive + count - 1;
+            int maxIndex = _minIndexInclusive + count - 1;
+
             if ((uint)maxIndex >= (uint)_maxIndexInclusive)
             {
                 return this;
@@ -98,7 +101,7 @@ namespace System.Linq
         {
             if ((uint)index <= (uint)(_maxIndexInclusive - _minIndexInclusive) && index < _source.Count - _minIndexInclusive)
             {
-                var res = _source[_minIndexInclusive + index];
+                TSource res = _source[_minIndexInclusive + index];
                 return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(res));
             }
 
@@ -109,7 +112,7 @@ namespace System.Linq
         {
             if (_source.Count > _minIndexInclusive)
             {
-                var res = _source[_minIndexInclusive];
+                TSource res = _source[_minIndexInclusive];
                 return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(res));
             }
 
@@ -118,10 +121,11 @@ namespace System.Linq
 
         public ValueTask<Maybe<TSource>> TryGetLastAsync(CancellationToken cancellationToken)
         {
-            var lastIndex = _source.Count - 1;
+            int lastIndex = _source.Count - 1;
+
             if (lastIndex >= _minIndexInclusive)
             {
-                var res = _source[Math.Min(lastIndex, _maxIndexInclusive)];
+                TSource res = _source[Math.Min(lastIndex, _maxIndexInclusive)];
                 return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(res));
             }
 
@@ -132,7 +136,8 @@ namespace System.Linq
         {
             get
             {
-                var count = _source.Count;
+                int count = _source.Count;
+
                 if (count <= _minIndexInclusive)
                 {
                     return 0;
@@ -144,7 +149,8 @@ namespace System.Linq
 
         public ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
         {
-            var count = Count;
+            int count = Count;
+
             if (count == 0)
             {
                 return new ValueTask<TSource[]>(
@@ -157,6 +163,7 @@ namespace System.Linq
             }
 
             var array = new TSource[count];
+
             for (int i = 0, curIdx = _minIndexInclusive; i != array.Length; ++i, ++curIdx)
             {
                 array[i] = _source[curIdx];
@@ -167,15 +174,17 @@ namespace System.Linq
 
         public ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
         {
-            var count = Count;
+            int count = Count;
+
             if (count == 0)
             {
                 return new ValueTask<List<TSource>>(new List<TSource>());
             }
 
             var list = new List<TSource>(count);
-            var end = _minIndexInclusive + count;
-            for (var i = _minIndexInclusive; i != end; ++i)
+            int end = _minIndexInclusive + count;
+
+            for (int i = _minIndexInclusive; i != end; ++i)
             {
                 list.Add(_source[i]);
             }
@@ -183,9 +192,6 @@ namespace System.Linq
             return new ValueTask<List<TSource>>(list);
         }
 
-        public ValueTask<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken)
-        {
-            return new ValueTask<int>(Count);
-        }
+        public ValueTask<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken) => 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()
         {
-            var d1 = Interlocked.Exchange(ref _d1, null);
+            IDisposable d1 = Interlocked.Exchange(ref _d1, null);
             if (d1 != null)
             {
                 d1.Dispose();
 
-                var d2 = Interlocked.Exchange(ref _d2, null);
+                IDisposable 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)
         {
-            var acc = seed;
+            TAccumulate acc = seed;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -208,7 +208,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var acc = e.Current;
+                TSource 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)
         {
-            var acc = seed;
+            TResult acc = seed;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var acc = seed;
+            TResult acc = seed;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var acc = seed;
+            TAccumulate acc = seed;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var acc = seed;
+            TAccumulate acc = seed;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -322,7 +322,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var acc = e.Current;
+                TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -349,7 +349,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var acc = e.Current;
+                TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

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

@@ -179,7 +179,8 @@ namespace System.Linq
 
             public override async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                var count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                int count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+
                 if (count == -1)
                 {
                     return await AsyncEnumerableHelpers.ToArray(this, cancellationToken).ConfigureAwait(false);
@@ -189,6 +190,7 @@ namespace System.Linq
 
                 var array = new TSource[count];
                 int index;
+
                 if (_appending)
                 {
                     index = 0;
@@ -205,7 +207,7 @@ namespace System.Linq
                 }
                 else
                 {
-                    var en = _source.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -231,18 +233,18 @@ namespace System.Linq
 
             public override async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                var count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                int count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
 
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var list = count == -1 ? new List<TSource>() : new List<TSource>(count);
+                List<TSource> list = count == -1 ? new List<TSource>() : new List<TSource>(count);
 
                 if (!_appending)
                 {
                     list.Add(_item);
                 }
 
-                var en = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -268,7 +270,7 @@ namespace System.Linq
             {
                 if (_source is IAsyncIListProvider<TSource> listProv)
                 {
-                    var count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
+                    int count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
                     return count == -1 ? -1 : count + 1;
                 }
 
@@ -380,19 +382,20 @@ namespace System.Linq
 
             public override AppendPrependAsyncIterator<TSource> Append(TSource item)
             {
-                var res = _appended != null ? _appended.Add(item) : new SingleLinkedNode<TSource>(item);
+                SingleLinkedNode<TSource> 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)
             {
-                var res = _prepended != null ? _prepended.Add(item) : new SingleLinkedNode<TSource>(item);
+                SingleLinkedNode<TSource> 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)
             {
-                var count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                int count = await GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+
                 if (count == -1)
                 {
                     return await AsyncEnumerableHelpers.ToArray(this, cancellationToken).ConfigureAwait(false);
@@ -400,7 +403,8 @@ namespace System.Linq
 
                 var array = new TSource[count];
                 var index = 0;
-                for (var n = _prepended; n != null; n = n.Linked)
+
+                for (SingleLinkedNode<TSource> n = _prepended; n != null; n = n.Linked)
                 {
                     array[index] = n.Item;
                     ++index;
@@ -412,7 +416,7 @@ namespace System.Linq
                 }
                 else
                 {
-                    var en = _source.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -429,7 +433,7 @@ namespace System.Linq
                 }
 
                 index = array.Length;
-                for (var n = _appended; n != null; n = n.Linked)
+                for (SingleLinkedNode<TSource> n = _appended; n != null; n = n.Linked)
                 {
                     --index;
                     array[index] = n.Item;
@@ -440,14 +444,16 @@ namespace System.Linq
 
             public override async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                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)
+                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)
                 {
                     list.Add(n.Item);
                 }
 
-                var en = _source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> en = _source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -463,7 +469,7 @@ namespace System.Linq
 
                 if (_appended != null)
                 {
-                    using (var en2 = _appended.GetEnumerator(_appendCount))
+                    using (IEnumerator<TSource> en2 = _appended.GetEnumerator(_appendCount))
                     {
                         while (en2.MoveNext())
                         {
@@ -479,7 +485,7 @@ namespace System.Linq
             {
                 if (_source is IAsyncIListProvider<TSource> listProv)
                 {
-                    var count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
+                    int count = await listProv.GetCountAsync(onlyIfCheap, cancellationToken).ConfigureAwait(false);
                     return count == -1 ? -1 : count + _appendCount + _prependCount;
                 }
 

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

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

+ 162 - 83
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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<int> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -23,6 +23,7 @@ namespace System.Linq
 
                 long sum = e.Current;
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -42,7 +43,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, int> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -53,6 +54,7 @@ namespace System.Linq
 
                 long sum = selector(e.Current);
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -72,7 +74,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<int>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -83,6 +85,7 @@ namespace System.Linq
 
                 long sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -103,7 +106,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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -114,6 +117,7 @@ namespace System.Linq
 
                 long sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -134,22 +138,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore(IAsyncEnumerable<int?> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<int?> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = e.Current;
+                    int? 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();
@@ -172,22 +179,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, int?> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = selector(e.Current);
+                    int? 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();
@@ -210,22 +220,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<int?>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current).ConfigureAwait(false);
+                    int? 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();
@@ -249,22 +262,25 @@ 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    int? 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();
@@ -288,7 +304,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore(IAsyncEnumerable<long> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<long> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -297,8 +313,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = e.Current;
+                long sum = e.Current;
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -318,7 +335,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, long> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -327,8 +344,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = selector(e.Current);
+                long sum = selector(e.Current);
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -348,7 +366,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<long>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -357,8 +375,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = await selector(e.Current).ConfigureAwait(false);
+                long sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -379,7 +398,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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -388,8 +407,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                long sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                 long count = 1;
+
                 checked
                 {
                     while (await e.MoveNextAsync().ConfigureAwait(false))
@@ -410,22 +430,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore(IAsyncEnumerable<long?> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<long?> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = e.Current;
+                    long? v = e.Current;
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        long sum = v.GetValueOrDefault();
                         long count = 1;
+
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = e.Current;
+
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -448,22 +471,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, long?> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = selector(e.Current);
+                    long? v = selector(e.Current);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        long sum = v.GetValueOrDefault();
                         long count = 1;
+
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = selector(e.Current);
+
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -486,22 +512,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<long?>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current).ConfigureAwait(false);
+                    long? v = await selector(e.Current).ConfigureAwait(false);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        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();
@@ -525,22 +554,25 @@ 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    long? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        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();
@@ -564,7 +596,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore(IAsyncEnumerable<double> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<double> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -573,8 +605,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = e.Current;
+                double 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
@@ -594,7 +627,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, double> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -603,8 +636,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = selector(e.Current);
+                double 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
@@ -624,7 +658,7 @@ namespace System.Linq
 
         private static async Task<double> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<double>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -633,8 +667,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = await selector(e.Current).ConfigureAwait(false);
+                double 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
@@ -655,7 +690,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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -664,8 +699,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                double 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
@@ -686,22 +722,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore(IAsyncEnumerable<double?> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<double?> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = e.Current;
+                    double? v = e.Current;
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        double sum = v.GetValueOrDefault();
                         long count = 1;
+
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = e.Current;
+
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -724,22 +763,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, double?> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = selector(e.Current);
+                    double? v = selector(e.Current);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        double sum = v.GetValueOrDefault();
                         long count = 1;
+
                         checked
                         {
                             while (await e.MoveNextAsync().ConfigureAwait(false))
                             {
                                 v = selector(e.Current);
+
                                 if (v.HasValue)
                                 {
                                     sum += v.GetValueOrDefault();
@@ -762,22 +804,25 @@ namespace System.Linq
 
         private static async Task<double?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<double?>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current).ConfigureAwait(false);
+                    double? v = await selector(e.Current).ConfigureAwait(false);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        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();
@@ -801,22 +846,25 @@ 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    double? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        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();
@@ -840,7 +888,7 @@ namespace System.Linq
 
         private static async Task<float> AverageCore(IAsyncEnumerable<float> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<float> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -851,6 +899,7 @@ namespace System.Linq
 
                 double sum = e.Current;
                 long count = 1;
+
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -867,7 +916,7 @@ namespace System.Linq
 
         private static async Task<float> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, float> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -878,6 +927,7 @@ namespace System.Linq
 
                 double sum = selector(e.Current);
                 long count = 1;
+
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += selector(e.Current);
@@ -894,7 +944,7 @@ namespace System.Linq
 
         private static async Task<float> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<float>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -905,6 +955,7 @@ 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);
@@ -922,7 +973,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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -933,6 +984,7 @@ 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);
@@ -950,22 +1002,25 @@ namespace System.Linq
 
         private static async Task<float?> AverageCore(IAsyncEnumerable<float?> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<float?> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = e.Current;
+                    float? 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();
@@ -988,22 +1043,25 @@ namespace System.Linq
 
         private static async Task<float?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, float?> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = selector(e.Current);
+                    float? 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();
@@ -1026,22 +1084,25 @@ namespace System.Linq
 
         private static async Task<float?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<float?>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current).ConfigureAwait(false);
+                    float? 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();
@@ -1065,22 +1126,25 @@ 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    float? 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();
@@ -1104,7 +1168,7 @@ namespace System.Linq
 
         private static async Task<decimal> AverageCore(IAsyncEnumerable<decimal> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<decimal> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1113,8 +1177,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = e.Current;
+                decimal sum = e.Current;
                 long count = 1;
+
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -1131,7 +1196,7 @@ namespace System.Linq
 
         private static async Task<decimal> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, decimal> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1158,7 +1223,7 @@ namespace System.Linq
 
         private static async Task<decimal> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<decimal>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1167,8 +1232,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = await selector(e.Current).ConfigureAwait(false);
+                decimal sum = await selector(e.Current).ConfigureAwait(false);
                 long count = 1;
+
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
                     sum += await selector(e.Current).ConfigureAwait(false);
@@ -1186,7 +1252,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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -1195,8 +1261,9 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var sum = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                decimal 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);
@@ -1214,20 +1281,23 @@ namespace System.Linq
 
         private static async Task<decimal?> AverageCore(IAsyncEnumerable<decimal?> source, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<decimal?> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = e.Current;
+                    decimal? v = e.Current;
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        decimal sum = v.GetValueOrDefault();
                         long count = 1;
+
                         while (await e.MoveNextAsync().ConfigureAwait(false))
                         {
                             v = e.Current;
+
                             if (v.HasValue)
                             {
                                 sum += v.GetValueOrDefault();
@@ -1249,20 +1319,23 @@ namespace System.Linq
 
         private static async Task<decimal?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, decimal?> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = selector(e.Current);
+                    decimal? v = selector(e.Current);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        decimal sum = v.GetValueOrDefault();
                         long count = 1;
+
                         while (await e.MoveNextAsync().ConfigureAwait(false))
                         {
                             v = selector(e.Current);
+
                             if (v.HasValue)
                             {
                                 sum += v.GetValueOrDefault();
@@ -1284,20 +1357,23 @@ namespace System.Linq
 
         private static async Task<decimal?> AverageCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<decimal?>> selector, CancellationToken cancellationToken)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current).ConfigureAwait(false);
+                    decimal? v = await selector(e.Current).ConfigureAwait(false);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        decimal 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();
@@ -1320,20 +1396,23 @@ 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    decimal? v = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+
                     if (v.HasValue)
                     {
-                        var sum = v.GetValueOrDefault();
+                        decimal 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++)
                 {
-                    var source = GetAsyncEnumerable(i);
+                    IAsyncEnumerable<TSource> source = GetAsyncEnumerable(i);
                     if (source == null)
                     {
                         break;
                     }
 
-                    var e = source.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -118,7 +118,7 @@ namespace System.Linq
                     var count = 0;
                     for (var i = 0; ; i++)
                     {
-                        var source = GetAsyncEnumerable(i);
+                        IAsyncEnumerable<TSource> 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
                         //
 
-                        var next = GetAsyncEnumerable(_counter++ - 1);
+                        IAsyncEnumerable<TSource> 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.
-                var current = this;
+                ConcatNAsyncIterator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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;
 
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -122,7 +122,7 @@ namespace System.Linq
         {
             var count = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -149,7 +149,7 @@ namespace System.Linq
         {
             var count = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -177,7 +177,7 @@ namespace System.Linq
         {
             var count = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
             {
-                var array = await _source.ToArrayAsync(cancellationToken).ConfigureAwait(false);
+                TSource[] array = await _source.ToArrayAsync(cancellationToken).ConfigureAwait(false);
                 return array.Length == 0 ? new[] { _defaultValue } : array;
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                var list = await _source.ToListAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> 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)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                Set<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                Set<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return s.ToList();
             }
 
@@ -66,7 +66,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    var s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                    Set<TSource> s = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                     return s.Count;
                 }
             }
@@ -100,7 +100,7 @@ namespace System.Linq
                             return false;
                         }
 
-                        var element = _enumerator.Current;
+                        TSource 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)
             {
-                var first = await p.TryGetElementAsync(index, cancellationToken).ConfigureAwait(false);
+                Maybe<TSource> first = await p.TryGetElementAsync(index, cancellationToken).ConfigureAwait(false);
 
                 if (first.HasValue)
                 {
@@ -46,7 +46,7 @@ namespace System.Linq
 
                 if (index >= 0)
                 {
-                    var e = source.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> 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)
             {
-                var first = await p.TryGetElementAsync(index, cancellationToken).ConfigureAwait(false);
+                Maybe<TSource> first = await p.TryGetElementAsync(index, cancellationToken).ConfigureAwait(false);
 
                 if (first.HasValue)
                 {
@@ -49,7 +49,7 @@ namespace System.Linq
                 }
                 else
                 {
-                    var e = source.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> 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)
                             {
-                                var item = _firstEnumerator.Current;
+                                TSource 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)
         {
-            var first = await TryGetFirst(source, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var first = await TryGetFirst(source, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var first = await TryGetFirst(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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()
                 {
-                    var e = source.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = e.Current;
+                    TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = e.Current;
+                    TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = e.Current;
+                    TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -155,7 +155,7 @@ namespace System.Linq
         {
             var index = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -174,7 +174,7 @@ namespace System.Linq
         {
             var index = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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)
             {
-                var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                Internal.Lookup<TKey, TSource> 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)
             {
-                var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                Internal.Lookup<TKey, TSource> 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()
                 {
-                    var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.Lookup<TKey, TSource> 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)
             {
-                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                Internal.LookupWithTask<TKey, TSource> 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)
             {
-                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                Internal.LookupWithTask<TKey, TSource> 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()
                 {
-                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.LookupWithTask<TKey, TSource> 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)
             {
-                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                Internal.LookupWithTask<TKey, TSource> 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)
             {
-                var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                Internal.LookupWithTask<TKey, TSource> 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()
                 {
-                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.LookupWithTask<TKey, TSource> 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()
                 {
-                    var l = await Internal.Lookup<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.Lookup<TKey, TElement> 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()
                 {
-                    var l = await Internal.LookupWithTask<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.LookupWithTask<TKey, TElement> 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()
                 {
-                    var l = await Internal.LookupWithTask<TKey, TElement>.CreateAsync(_source, _keySelector, _elementSelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.LookupWithTask<TKey, TElement> 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()
                 {
-                    var l = await Internal.Lookup<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.Lookup<TKey, TSource> 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()
                 {
-                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.LookupWithTask<TKey, TSource> 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()
                 {
-                    var l = await Internal.LookupWithTask<TKey, TSource>.CreateAsync(_source, _keySelector, _comparer, cancellationToken).ConfigureAwait(false);
+                    Internal.LookupWithTask<TKey, TSource> 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);
                     }
 
-                    var item = _outer.Current;
+                    TOuter item = _outer.Current;
 
-                    var outerKey = _outerKeySelector(item);
-                    var inner = _lookup[outerKey].ToAsyncEnumerable();
+                    TKey outerKey = _outerKeySelector(item);
+                    IAsyncEnumerable<TInner> 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);
                     }
 
-                    var item = _outer.Current;
+                    TOuter item = _outer.Current;
 
-                    var outerKey = await _outerKeySelector(item).ConfigureAwait(false);
-                    var inner = _lookup[outerKey].ToAsyncEnumerable();
+                    TKey outerKey = await _outerKeySelector(item).ConfigureAwait(false);
+                    IAsyncEnumerable<TInner> 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);
                     }
 
-                    var item = _outer.Current;
+                    TOuter item = _outer.Current;
 
-                    var outerKey = await _outerKeySelector(item, _cancellationToken).ConfigureAwait(false);
-                    var inner = _lookup[outerKey].ToAsyncEnumerable();
+                    TKey outerKey = await _outerKeySelector(item, _cancellationToken).ConfigureAwait(false);
+                    IAsyncEnumerable<TInner> 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)
                             {
-                                var item = _firstEnumerator.Current;
+                                TSource 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;
-                                var g = _lookup.GetGrouping(_outerKeySelector(_item), create: false);
+                                Internal.Grouping<TKey, TInner> 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:
-                                var hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
+                                bool 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;
-                                var g = _lookup.GetGrouping(await _outerKeySelector(_item).ConfigureAwait(false), create: false);
+                                Internal.Grouping<TKey, TInner> 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:
-                                var hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
+                                bool 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;
-                                var g = _lookup.GetGrouping(await _outerKeySelector(_item, _cancellationToken).ConfigureAwait(false), create: false);
+                                Internal.Grouping<TKey, TInner> 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:
-                                var hasNext = await _outerEnumerator.MoveNextAsync().ConfigureAwait(false);
+                                bool 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)
         {
-            var last = await TryGetLast(source, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : throw Error.NoElements();
         }

+ 13 - 12
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)
         {
-            var last = await TryGetLast(source, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> 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)
         {
-            var last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
+            Maybe<TSource> last = await TryGetLast(source, predicate, cancellationToken).ConfigureAwait(false);
 
             return last.HasValue ? last.Value : default;
         }
@@ -112,7 +112,8 @@ namespace System.Linq
         {
             if (source is IList<TSource> list)
             {
-                var count = list.Count;
+                int count = list.Count;
+
                 if (count > 0)
                 {
                     return new ValueTask<Maybe<TSource>>(new Maybe<TSource>(list[count - 1]));
@@ -131,7 +132,7 @@ namespace System.Linq
                     var last = default(TSource);
                     var hasLast = false;
 
-                    var e = source.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -158,13 +159,13 @@ namespace System.Linq
             var last = default(TSource);
             var hasLast = false;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = e.Current;
+                    TSource value = e.Current;
 
                     if (predicate(value))
                     {
@@ -191,13 +192,13 @@ namespace System.Linq
             var last = default(TSource);
             var hasLast = false;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = e.Current;
+                    TSource value = e.Current;
 
                     if (await predicate(value).ConfigureAwait(false))
                     {
@@ -225,13 +226,13 @@ namespace System.Linq
             var last = default(TSource);
             var hasLast = false;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = e.Current;
+                    TSource 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;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -106,7 +106,7 @@ namespace System.Linq
         {
             var count = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -133,7 +133,7 @@ namespace System.Linq
         {
             var count = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -161,7 +161,7 @@ namespace System.Linq
         {
             var count = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {

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

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

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 187 - 122
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)
         {
-            var comparer = Comparer<TSource>.Default;
+            Comparer<TSource> comparer = Comparer<TSource>.Default;
             var value = default(TSource);
             if (value == null)
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -33,7 +33,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var x = e.Current;
+                        TSource x = e.Current;
                         if (x != null && comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -47,7 +47,7 @@ namespace System.Linq
             }
             else
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -59,7 +59,7 @@ namespace System.Linq
                     value = e.Current;
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var x = e.Current;
+                        TSource 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)
         {
-            var comparer = Comparer<TResult>.Default;
+            Comparer<TResult> comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -98,7 +98,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var x = selector(e.Current);
+                        TResult x = selector(e.Current);
                         if (x != null && comparer.Compare(x, value) < 0)
                         {
                             value = x;
@@ -112,7 +112,7 @@ namespace System.Linq
             }
             else
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -124,7 +124,7 @@ namespace System.Linq
                     value = selector(e.Current);
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var x = selector(e.Current);
+                        TResult 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)
         {
-            var comparer = Comparer<TResult>.Default;
+            Comparer<TResult> comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -163,7 +163,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var x = await selector(e.Current).ConfigureAwait(false);
+                        TResult 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
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> 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))
                     {
-                        var x = await selector(e.Current).ConfigureAwait(false);
+                        TResult 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)
         {
-            var comparer = Comparer<TResult>.Default;
+            Comparer<TResult> comparer = Comparer<TResult>.Default;
             var value = default(TResult);
             if (value == null)
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
@@ -229,7 +229,7 @@ namespace System.Linq
 
                     while (await e.MoveNextAsync().ConfigureAwait(false))
                     {
-                        var x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                        TResult 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
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> 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))
                     {
-                        var x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                        TResult x = await selector(e.Current, cancellationToken).ConfigureAwait(false);
                         if (comparer.Compare(x, value) < 0)
                         {
                             value = x;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 222 - 150
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Min.Primitive.cs


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

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

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

@@ -42,7 +42,7 @@ namespace System.Linq
 
                     // REVIEW: If we add selectors with CancellationToken support, we should feed the token to Sort.
 
-                    var sorter = GetAsyncEnumerableSorter(next: null, _cancellationToken);
+                    AsyncEnumerableSorter<TElement> sorter = GetAsyncEnumerableSorter(next: null, _cancellationToken);
                     _indexes = await sorter.Sort(_buffer, _buffer.Length).ConfigureAwait(false);
                     _index = 0;
 
@@ -213,9 +213,9 @@ namespace System.Linq
         {
             do
             {
-                var i = left;
-                var j = right;
-                var x = map[i + (j - i >> 1)];
+                int i = left;
+                int j = right;
+                int x = map[i + (j - i >> 1)];
 
                 do
                 {
@@ -236,7 +236,7 @@ namespace System.Linq
 
                     if (i < j)
                     {
-                        var temp = map[i];
+                        int temp = map[i];
                         map[i] = map[j];
                         map[j] = temp;
                     }
@@ -285,7 +285,7 @@ namespace System.Linq
 
         internal override int CompareKeys(int index1, int index2)
         {
-            var c = _comparer.Compare(_keys[index1], _keys[index2]);
+            int c = _comparer.Compare(_keys[index1], _keys[index2]);
 
             if (c == 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));
 
-            var end = (long)start + count - 1L;
+            long 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)
             {
-                var n = _end - _start;
+                int n = _end - _start;
 
                 if (count >= n)
                 {
@@ -57,7 +57,7 @@ namespace System.Linq
 
             public IAsyncPartition<int> Take(int count)
             {
-                var n = _end - _start;
+                int n = _end - _start;
 
                 if (count >= n)
                 {
@@ -71,7 +71,7 @@ namespace System.Linq
             {
                 var res = new int[_end - _start];
 
-                var value = _start;
+                int 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)
             {
-                var array = await _source.ToArrayAsync(cancellationToken).ConfigureAwait(false);
+                TSource[] 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)
                 {
-                    var temp = array[i];
+                    TSource 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)
             {
-                var list = await _source.ToListAsync(cancellationToken).ConfigureAwait(false);
+                List<TSource> 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -281,9 +281,9 @@ namespace System.Linq
 
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var count = 0;
+                int count = 0;
 
-                foreach (var item in _source)
+                foreach (TSource item in _source)
                 {
                     _selector(item);
 
@@ -305,7 +305,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var n = _source.Count;
+                int n = _source.Count;
 
                 var res = new TResult[n];
 
@@ -321,7 +321,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var n = _source.Count;
+                int 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -591,7 +591,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -660,9 +660,9 @@ namespace System.Linq
                 {
                     cancellationToken.ThrowIfCancellationRequested();
 
-                    var count = 0;
+                    int count = 0;
 
-                    foreach (var item in _source)
+                    foreach (TSource item in _source)
                     {
                         await _selector(item).ConfigureAwait(false);
 
@@ -685,7 +685,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var n = _source.Count;
+                int n = _source.Count;
 
                 var res = new TResult[n];
 
@@ -701,7 +701,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var n = _source.Count;
+                int n = _source.Count;
 
                 var res = new List<TResult>(n);
 
@@ -782,9 +782,9 @@ namespace System.Linq
                 {
                     cancellationToken.ThrowIfCancellationRequested();
 
-                    var count = 0;
+                    int count = 0;
 
-                    foreach (var item in _source)
+                    foreach (TSource item in _source)
                     {
                         await _selector(item, cancellationToken).ConfigureAwait(false);
 
@@ -807,7 +807,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var n = _source.Count;
+                int n = _source.Count;
 
                 var res = new TResult[n];
 
@@ -823,7 +823,7 @@ namespace System.Linq
             {
                 cancellationToken.ThrowIfCancellationRequested();
 
-                var n = _source.Count;
+                int 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);
                                     }
 
-                                    var inner = _selector(_sourceEnumerator.Current);
+                                    IAsyncEnumerable<TResult> inner = _selector(_sourceEnumerator.Current);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -306,7 +306,7 @@ namespace System.Linq
                                         await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                                     }
 
-                                    var inner = await _selector(_sourceEnumerator.Current).ConfigureAwait(false);
+                                    IAsyncEnumerable<TResult> 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);
                                     }
 
-                                    var inner = await _selector(_sourceEnumerator.Current, _cancellationToken).ConfigureAwait(false);
+                                    IAsyncEnumerable<TResult> 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;
-                                    var inner = _collectionSelector(_currentSource);
+                                    IAsyncEnumerable<TCollection> inner = _collectionSelector(_currentSource);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -595,7 +595,7 @@ namespace System.Linq
                                     }
 
                                     _currentSource = _sourceEnumerator.Current;
-                                    var inner = await _collectionSelector(_currentSource).ConfigureAwait(false);
+                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -694,7 +694,7 @@ namespace System.Linq
                                     }
 
                                     _currentSource = _sourceEnumerator.Current;
-                                    var inner = await _collectionSelector(_currentSource, _cancellationToken).ConfigureAwait(false);
+                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource, _cancellationToken).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -801,7 +801,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    var inner = _collectionSelector(_currentSource, _index);
+                                    IAsyncEnumerable<TCollection> inner = _collectionSelector(_currentSource, _index);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -907,7 +907,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    var inner = await _collectionSelector(_currentSource, _index).ConfigureAwait(false);
+                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource, _index).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1014,7 +1014,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    var inner = await _collectionSelector(_currentSource, _index, _cancellationToken).ConfigureAwait(false);
+                                    IAsyncEnumerable<TCollection> inner = await _collectionSelector(_currentSource, _index, _cancellationToken).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1113,7 +1113,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    var inner = _selector(_sourceEnumerator.Current, _index);
+                                    IAsyncEnumerable<TResult> inner = _selector(_sourceEnumerator.Current, _index);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1211,7 +1211,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    var inner = await _selector(_sourceEnumerator.Current, _index).ConfigureAwait(false);
+                                    IAsyncEnumerable<TResult> inner = await _selector(_sourceEnumerator.Current, _index).ConfigureAwait(false);
                                     _resultEnumerator = inner.GetAsyncEnumerator(_cancellationToken);
 
                                     _mode = State_Result;
@@ -1310,7 +1310,7 @@ namespace System.Linq
                                         _index++;
                                     }
 
-                                    var inner = await _selector(_sourceEnumerator.Current, _index, _cancellationToken).ConfigureAwait(false);
+                                    IAsyncEnumerable<TResult> 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

@@ -66,11 +66,11 @@ namespace System.Linq
 
             async Task<bool> Core()
             {
-                var e1 = first.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> e1 = first.GetAsyncEnumerator(cancellationToken);
 
                 try
                 {
-                    var e2 = second.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> 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();
             }
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -100,7 +100,7 @@ namespace System.Linq
                     throw Error.NoElements();
                 }
 
-                var result = e.Current;
+                TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var result = e.Current;
+                    TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var result = e.Current;
+                    TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var result = e.Current;
+                    TSource 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 (var node = this; node != null; node = node.Linked)
+            for (SingleLinkedNode<TSource> node = this; node != null; node = node.Linked)
             {
                 count++;
             }
@@ -86,7 +86,7 @@ namespace System.Linq
         {
             Debug.Assert(index >= 0 && index < GetCount());
 
-            var node = this;
+            SingleLinkedNode<TSource> 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];
-            var index = count;
-            for (var node = this; node != null; node = node.Linked)
+            int index = count;
+            for (SingleLinkedNode<TSource> 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();
             }
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -100,7 +100,7 @@ namespace System.Linq
                     return default;
                 }
 
-                var result = e.Current;
+                TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var result = e.Current;
+                    TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var result = e.Current;
+                    TSource 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var result = e.Current;
+                    TSource 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource 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))
                         {
-                            var element = _enumerator.Current;
+                            TSource 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))
                         {
-                            var element = _enumerator.Current;
+                            TSource element = _enumerator.Current;
 
                             checked
                             {
@@ -278,7 +278,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var element = _enumerator.Current;
+                            TSource 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))
                         {
-                            var element = _enumerator.Current;
+                            TSource 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))
                         {
-                            var element = _enumerator.Current;
+                            TSource element = _enumerator.Current;
 
                             checked
                             {
@@ -519,7 +519,7 @@ namespace System.Linq
                         // skip elements as requested
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var element = _enumerator.Current;
+                            TSource 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<int> 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    int 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    int 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    int 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<long> 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    long 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    long 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    long 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<float> 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    float 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    float 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    float 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<double> 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    double 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    double 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    double 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<decimal> 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    decimal 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    decimal 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    decimal 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<int?> 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    int? 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    int? 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)
         {
-            var sum = 0;
+            int sum = 0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    int? 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<long?> 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    long? 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    long? 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)
         {
-            var sum = 0L;
+            long sum = 0L;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    long? 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<float?> 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    float? 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    float? 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)
         {
-            var sum = 0.0f;
+            float sum = 0.0f;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    float? 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<double?> 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    double? 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    double? 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)
         {
-            var sum = 0.0;
+            double sum = 0.0;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    double? 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<decimal?> 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    decimal? 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    decimal? 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)
         {
-            var sum = 0m;
+            decimal sum = 0m;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    decimal? value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
                     sum += value.GetValueOrDefault();
                 }

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

@@ -34,6 +34,7 @@ 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)
         {
@@ -105,9 +106,9 @@ foreach (var o in os)
 
         private static async Task<<#=o.type#>> SumCore(IAsyncEnumerable<<#=o.type#>> source, CancellationToken cancellationToken)
         {
-            var sum = <#=o.zero#>;
+            <#=nonNullType#> sum = <#=o.zero#>;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<<#=o.type#>> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -142,15 +143,15 @@ else
 
         private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, <#=o.type#>> selector, CancellationToken cancellationToken)
         {
-            var sum = <#=o.zero#>;
+            <#=nonNullType#> sum = <#=o.zero#>;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = selector(e.Current);
+                    <#=o.type#> value = selector(e.Current);
 
 <#
 if (o.@checked)
@@ -181,15 +182,15 @@ else
 
         private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken)
         {
-            var sum = <#=o.zero#>;
+            <#=nonNullType#> sum = <#=o.zero#>;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    <#=o.type#> value = await selector(e.Current).ConfigureAwait(false);
 
 <#
 if (o.@checked)
@@ -221,15 +222,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)
         {
-            var sum = <#=o.zero#>;
+            <#=nonNullType#> sum = <#=o.zero#>;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    <#=o.type#> 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)
                                     {
-                                        var item = _enumerator.Current;
+                                        TSource 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             if (!_predicate(item))
                             {
                                 break;
@@ -184,7 +184,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -253,7 +253,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -454,7 +454,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         if (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource 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)
                         {
-                            var completed = Volatile.Read(ref _completed);
+                            bool completed = Volatile.Read(ref _completed);
 
                             if (_values.TryDequeue(out _current))
                             {
@@ -84,7 +84,7 @@ namespace System.Linq
                             }
                             else if (completed)
                             {
-                                var error = _error;
+                                Exception error = _error;
 
                                 if (error != null)
                                 {
@@ -131,7 +131,7 @@ namespace System.Linq
             {
                 while (true)
                 {
-                    var signal = Volatile.Read(ref _signal);
+                    TaskCompletionSource<bool> signal = Volatile.Read(ref _signal);
 
                     if (signal == TaskExt.True)
                     {
@@ -170,7 +170,7 @@ namespace System.Linq
 
                 while (true)
                 {
-                    var signal = Volatile.Read(ref _signal);
+                    TaskCompletionSource<bool> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -248,10 +248,10 @@ namespace System.Linq
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var x = e.Current;
+                    TSource x = e.Current;
 
-                    var key = keySelector(x);
-                    var value = elementSelector(x);
+                    TKey key = keySelector(x);
+                    TElement 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -274,10 +274,10 @@ namespace System.Linq
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var x = e.Current;
+                    TSource x = e.Current;
 
-                    var key = await keySelector(x).ConfigureAwait(false);
-                    var value = await elementSelector(x).ConfigureAwait(false);
+                    TKey key = await keySelector(x).ConfigureAwait(false);
+                    TElement 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(cancellationToken);
 
             try
             {
@@ -301,10 +301,10 @@ namespace System.Linq
 
                 while (await e.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var x = e.Current;
+                    TSource x = e.Current;
 
-                    var key = await keySelector(x, cancellationToken).ConfigureAwait(false);
-                    var value = await elementSelector(x, cancellationToken).ConfigureAwait(false);
+                    TKey key = await keySelector(x, cancellationToken).ConfigureAwait(false);
+                    TElement 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()
             {
-                var e = source.GetAsyncEnumerator(default);
+                IAsyncEnumerator<TSource> e = source.GetAsyncEnumerator(default);
 
                 try
                 {
@@ -46,7 +46,7 @@ namespace System.Linq
 
         private static void Wait(ValueTask task)
         {
-            var awaiter = task.GetAwaiter();
+            Runtime.CompilerServices.ValueTaskAwaiter awaiter = task.GetAwaiter();
 
             if (!awaiter.IsCompleted)
             {
@@ -59,7 +59,7 @@ namespace System.Linq
 
         private static T Wait<T>(ValueTask<T> task)
         {
-            var awaiter = task.GetAwaiter();
+            Runtime.CompilerServices.ValueTaskAwaiter<T> 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)
         {
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            IAsyncEnumerator<TSource> 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()
             {
-                var e = source.GetAsyncEnumerator(cancellationToken);
+                IAsyncEnumerator<TSource> 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();
-                var e = _source.GetAsyncEnumerator(ctd.Token);
+                IAsyncEnumerator<T> 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);
-                var element = _enumerator.Current;
+                TSource element = _enumerator.Current;
                 set.Add(element);
                 _current = element;
                 _set = set;
@@ -94,12 +94,12 @@ namespace System.Linq
 
             private async ValueTask<bool> GetNextAsync()
             {
-                var set = _set;
+                Set<TSource> set = _set;
                 Debug.Assert(set != null);
 
                 while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                 {
-                    var element = _enumerator.Current;
+                    TSource element = _enumerator.Current;
                     if (set.Add(element))
                     {
                         _current = element;
@@ -117,11 +117,11 @@ namespace System.Linq
                     case AsyncIteratorState.Allocated:
                         _index = 0;
 
-                        for (var enumerable = GetEnumerable(0); enumerable != null; enumerable = GetEnumerable(_index))
+                        for (IAsyncEnumerable<TSource> enumerable = GetEnumerable(0); enumerable != null; enumerable = GetEnumerable(_index))
                         {
                             ++_index;
 
-                            var enumerator = enumerable.GetAsyncEnumerator(_cancellationToken);
+                            IAsyncEnumerator<TSource> enumerator = enumerable.GetAsyncEnumerator(_cancellationToken);
 
                             if (await enumerator.MoveNextAsync().ConfigureAwait(false))
                             {
@@ -143,7 +143,7 @@ namespace System.Linq
                                 return true;
                             }
 
-                            var enumerable = GetEnumerable(_index);
+                            IAsyncEnumerable<TSource> enumerable = GetEnumerable(_index);
                             if (enumerable == null)
                             {
                                 break;
@@ -168,13 +168,13 @@ namespace System.Linq
 
                 for (var index = 0; ; ++index)
                 {
-                    var enumerable = GetEnumerable(index);
+                    IAsyncEnumerable<TSource> enumerable = GetEnumerable(index);
                     if (enumerable == null)
                     {
                         return set;
                     }
 
-                    var e = enumerable.GetAsyncEnumerator(cancellationToken);
+                    IAsyncEnumerator<TSource> e = enumerable.GetAsyncEnumerator(cancellationToken);
 
                     try
                     {
@@ -192,13 +192,13 @@ namespace System.Linq
 
             public async ValueTask<TSource[]> ToArrayAsync(CancellationToken cancellationToken)
             {
-                var set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                Set<TSource> set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return set.ToArray();
             }
 
             public async ValueTask<List<TSource>> ToListAsync(CancellationToken cancellationToken)
             {
-                var set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                Set<TSource> set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                 return set.ToList();
             }
 
@@ -213,7 +213,7 @@ namespace System.Linq
 
                 async ValueTask<int> Core()
                 {
-                    var set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
+                    Set<TSource> set = await FillSetAsync(cancellationToken).ConfigureAwait(false);
                     return set.Count;
                 }
             }
@@ -255,7 +255,7 @@ namespace System.Linq
 
             internal override UnionAsyncIterator<TSource> Union(IAsyncEnumerable<TSource> next)
             {
-                var sources = new SingleLinkedNode<IAsyncEnumerable<TSource>>(_first).Add(_second).Add(next);
+                SingleLinkedNode<IAsyncEnumerable<TSource>> 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             if (_predicate(item))
                             {
                                 _current = item;
@@ -225,7 +225,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -295,7 +295,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource 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))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -492,7 +492,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
 
                             checked
                             {
@@ -567,7 +567,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         while (await _enumerator.MoveNextAsync().ConfigureAwait(false))
                         {
-                            var item = _enumerator.Current;
+                            TSource item = _enumerator.Current;
                             if (_predicate(item))
                             {
                                 _current = _selector(item);

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

@@ -35,8 +35,9 @@ 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
-            var hashCode = InternalGetHashCode(value);
-            for (var i = _buckets[hashCode % _buckets.Length] - 1; i >= 0; i = _slots[i]._next)
+            int hashCode = InternalGetHashCode(value);
+
+            for (int i = _buckets[hashCode % _buckets.Length] - 1; i >= 0; i = _slots[i]._next)
             {
                 if (_slots[i]._hashCode == hashCode && _comparer.Equals(_slots[i]._value, value))
                 {
@@ -49,13 +50,15 @@ namespace System.Linq
                 Resize();
             }
 
-            var index = Count;
+            int index = Count;
             Count++;
-            var bucket = hashCode % _buckets.Length;
+
+            int bucket = hashCode % _buckets.Length;
             _slots[index]._hashCode = hashCode;
             _slots[index]._value = value;
             _slots[index]._next = _buckets[bucket] - 1;
             _buckets[bucket] = index + 1;
+
             return true;
         }
 
@@ -65,10 +68,11 @@ namespace System.Linq
 #if DEBUG
             _haveRemoved = true;
 #endif
-            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)
+            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)
             {
                 if (_slots[i]._hashCode == hashCode && _comparer.Equals(_slots[i]._value, value))
                 {
@@ -84,6 +88,7 @@ namespace System.Linq
                     _slots[i]._hashCode = -1;
                     _slots[i]._value = default;
                     _slots[i]._next = -1;
+
                     return true;
                 }
             }
@@ -103,6 +108,7 @@ 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;
@@ -116,8 +122,9 @@ namespace System.Linq
 #if DEBUG
             Debug.Assert(!_haveRemoved, "Optimized ToList cannot be called if Remove has been called.");
 #endif
-            var count = Count;
+            int count = Count;
             var list = new List<TElement>(count);
+
             for (var i = 0; i != count; ++i)
             {
                 list.Add(_slots[i]._value);
@@ -128,13 +135,16 @@ namespace System.Linq
 
         private void Resize()
         {
-            var newSize = checked((Count * 2) + 1);
+            int 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++)
             {
-                var bucket = newSlots[i]._hashCode % newSize;
+                int bucket = newSlots[i]._hashCode % newSize;
+
                 newSlots[i]._next = newBuckets[bucket] - 1;
                 newBuckets[bucket] = i + 1;
             }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно