diff options
| author | Danny Milosavljevic <dannym@friendly-machines.com> | 2026-04-08 17:05:03 +0200 |
|---|---|---|
| committer | Danny Milosavljevic <dannym@friendly-machines.com> | 2026-07-17 01:41:57 +0200 |
| commit | ce5aae4199f0cbd08b6460f568fcbcdef58d9160 (patch) | |
| tree | 24865770c59d7355ae359db80b5d8958378be3a4 /gnu | |
| parent | a0a9240d0aaaab6067fbe6464f20d3942c0657cc (diff) | |
gnu: Add roslyn@2.8.2.
* gnu/packages/patches/roslyn-2.8.2-csharp-7.2-for-csc-2.3.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add reference to it.
* gnu/packages/dotnet.scm (roslyn-2.8): New variable.
Change-Id: I91fc798164f00e51e8e02183f69e478a5e248466
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/local.mk | 1 | ||||
| -rw-r--r-- | gnu/packages/dotnet.scm | 115 | ||||
| -rw-r--r-- | gnu/packages/patches/roslyn-2.8.2-csharp-7.2-for-csc-2.3.patch | 665 |
3 files changed, 781 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 46581dd441e..aca3d6cbef6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk | |||
| @@ -2426,6 +2426,7 @@ dist_patch_DATA = \ | |||
| 2426 | %D%/packages/patches/rocprim-placement-new-delete.patch \ | 2426 | %D%/packages/patches/rocprim-placement-new-delete.patch \ |
| 2427 | %D%/packages/patches/roslyn-2.0.0-bootstrap-with-mono.patch \ | 2427 | %D%/packages/patches/roslyn-2.0.0-bootstrap-with-mono.patch \ |
| 2428 | %D%/packages/patches/roslyn-2.3.0-default-literal-for-csc-2.0.patch \ | 2428 | %D%/packages/patches/roslyn-2.3.0-default-literal-for-csc-2.0.patch \ |
| 2429 | %D%/packages/patches/roslyn-2.8.2-csharp-7.2-for-csc-2.3.patch \ | ||
| 2429 | %D%/packages/patches/rottlog-direntry.patch \ | 2430 | %D%/packages/patches/rottlog-direntry.patch \ |
| 2430 | %D%/packages/patches/ruby-actionpack-remove-browser-tests.patch \ | 2431 | %D%/packages/patches/ruby-actionpack-remove-browser-tests.patch \ |
| 2431 | %D%/packages/patches/ruby-activesupport-fix-deprecation-warning.patch \ | 2432 | %D%/packages/patches/ruby-activesupport-fix-deprecation-warning.patch \ |
diff --git a/gnu/packages/dotnet.scm b/gnu/packages/dotnet.scm index e33eeddb981..2564dc2f33f 100644 --- a/gnu/packages/dotnet.scm +++ b/gnu/packages/dotnet.scm | |||
| @@ -2668,6 +2668,121 @@ compiler that can be used to bootstrap newer Roslyn versions.") | |||
| 2668 | from source using @code{roslyn-2.0} as the bootstrap compiler. It produces | 2668 | from source using @code{roslyn-2.0} as the bootstrap compiler. It produces |
| 2669 | a C# 7.1 compiler that supports default literals, which is needed to build | 2669 | a C# 7.1 compiler that supports default literals, which is needed to build |
| 2670 | newer Roslyn versions."))) | 2670 | newer Roslyn versions."))) |
| 2671 | |||
| 2672 | ;;; | ||
| 2673 | ;;; roslyn-2.8: inherits roslyn-2.3, built with csc 2.3 | ||
| 2674 | ;;; | ||
| 2675 | |||
| 2676 | (define-public roslyn-2.8 | ||
| 2677 | (package | ||
| 2678 | (inherit roslyn-2.3) | ||
| 2679 | (version "2.8.2") | ||
| 2680 | (source | ||
| 2681 | (origin | ||
| 2682 | (method git-fetch) | ||
| 2683 | (uri (git-reference | ||
| 2684 | (url "https://github.com/dotnet/roslyn") | ||
| 2685 | (commit (string-append "version-" version)))) | ||
| 2686 | (file-name (git-file-name "roslyn" version)) | ||
| 2687 | (sha256 | ||
| 2688 | (base32 | ||
| 2689 | "0xf30h91wf96gj7n2azqplzybzcllfni6cjkibyrr6pr7sv9an1x")) | ||
| 2690 | (patches | ||
| 2691 | (search-patches "roslyn-2.8.2-csharp-7.2-for-csc-2.3.patch")))) | ||
| 2692 | (native-inputs (list roslyn-2.3)) | ||
| 2693 | (arguments | ||
| 2694 | (substitute-keyword-arguments (package-arguments roslyn-2.3) | ||
| 2695 | ((#:phases phases '()) | ||
| 2696 | #~(modify-phases #$phases | ||
| 2697 | ;; No compiler-compat fixes needed; the patch handles everything. | ||
| 2698 | (replace 'fix-compiler-compat (lambda _ #t)) | ||
| 2699 | |||
| 2700 | ;; 2.8.2 also has DiaSymReader COM files to replace. | ||
| 2701 | (replace 'remove-stale-files | ||
| 2702 | (lambda _ | ||
| 2703 | ;; Rename file with trailing space in its name. | ||
| 2704 | (rename-file | ||
| 2705 | "src/Compilers/Core/Portable/Operations/IConstructorBodyOperation .cs" | ||
| 2706 | "src/Compilers/Core/Portable/Operations/IConstructorBodyOperation.cs") | ||
| 2707 | (for-each | ||
| 2708 | (lambda (f) (when (file-exists? f) (delete-file f))) | ||
| 2709 | (append | ||
| 2710 | '#$%roslyn-stale-files | ||
| 2711 | '("src/Compilers/Core/Portable/DiaSymReader/Utilities/IUnsafeComStream.cs" | ||
| 2712 | "src/Compilers/Core/Portable/DiaSymReader/Utilities/ComMemoryStream.cs"))))) | ||
| 2713 | |||
| 2714 | ;; 2.8.2 also needs DiaSymReader COM stubs. | ||
| 2715 | (add-after 'create-com-memory-stream-stub 'create-diasymreader-stubs | ||
| 2716 | (lambda _ | ||
| 2717 | (call-with-output-file | ||
| 2718 | "src/Compilers/Core/Portable/DiaSymReader/Utilities/ComMemoryStream.cs" | ||
| 2719 | (lambda (port) | ||
| 2720 | (display | ||
| 2721 | "using System; using System.Collections.Generic; using System.IO; | ||
| 2722 | namespace Microsoft.DiaSymReader | ||
| 2723 | { | ||
| 2724 | internal sealed class ComMemoryStream : Stream | ||
| 2725 | { | ||
| 2726 | public override bool CanRead => false; | ||
| 2727 | public override bool CanSeek => true; | ||
| 2728 | public override bool CanWrite => true; | ||
| 2729 | public override long Length => _length; | ||
| 2730 | public override long Position { get; set; } | ||
| 2731 | private long _length; | ||
| 2732 | public override void Flush() {} | ||
| 2733 | public override int Read(byte[] b, int o, int c) | ||
| 2734 | => throw new NotSupportedException(); | ||
| 2735 | public override long Seek(long o, SeekOrigin so) => 0; | ||
| 2736 | public override void SetLength(long v) { _length = v; } | ||
| 2737 | public override void Write(byte[] b, int o, int c) {} | ||
| 2738 | public IEnumerable<ArraySegment<byte>> GetChunks() | ||
| 2739 | => Array.Empty<ArraySegment<byte>>(); | ||
| 2740 | } | ||
| 2741 | } | ||
| 2742 | " port))) | ||
| 2743 | (call-with-output-file | ||
| 2744 | "src/Compilers/Core/Portable/DiaSymReader/Utilities/IUnsafeComStream.cs" | ||
| 2745 | (lambda (port) | ||
| 2746 | (display | ||
| 2747 | "namespace Microsoft.DiaSymReader { internal interface IUnsafeComStream {} }\n" | ||
| 2748 | port))))) | ||
| 2749 | |||
| 2750 | ;; Not needed; 2.8.2 has generated files checked in. | ||
| 2751 | (delete 'delete-generated-files) | ||
| 2752 | |||
| 2753 | ;; Point at roslyn-2.3's csc explicitly. | ||
| 2754 | (replace 'create-csc-wrapper | ||
| 2755 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2756 | (mkdir-p "bootstrap-bin") | ||
| 2757 | (call-with-output-file "bootstrap-bin/csc" | ||
| 2758 | (lambda (port) | ||
| 2759 | (format port "#!~a~%exec mono ~a \"$@\"~%" | ||
| 2760 | (which "bash") | ||
| 2761 | (string-append (assoc-ref inputs "roslyn") "/lib/roslyn/csc.exe")))) | ||
| 2762 | (chmod "bootstrap-bin/csc" #o755) | ||
| 2763 | (setenv "PATH" | ||
| 2764 | (string-append (getcwd) "/bootstrap-bin:" | ||
| 2765 | (getenv "PATH"))))) | ||
| 2766 | |||
| 2767 | ;; 2.8.2 source uses C# 7.1 features (default literals). | ||
| 2768 | ;; -d:NET46 selects Mono-compatible code paths in csc.exe. | ||
| 2769 | (replace 'create-csc-rsp | ||
| 2770 | (lambda _ | ||
| 2771 | (call-with-output-file "csc.rsp" | ||
| 2772 | (lambda (port) | ||
| 2773 | (display "-langversion:7.1\n-d:NET46\n" port))))) | ||
| 2774 | |||
| 2775 | ;; 2.8.2 has generated files checked in; skip regeneration. | ||
| 2776 | (delete 'generate-source) | ||
| 2777 | |||
| 2778 | ;; prepare-srm-source, build, compile, and install are all | ||
| 2779 | ;; inherited from roslyn-2.3. | ||
| 2780 | )))) | ||
| 2781 | (synopsis "C# 7.2 compiler bootstrapped from source") | ||
| 2782 | (description | ||
| 2783 | "This package provides the Roslyn C# compiler (@command{csc}), built | ||
| 2784 | from source using @code{roslyn-2.3} as the bootstrap compiler. It produces | ||
| 2785 | a C# 7.2 compiler."))) | ||
| 2671 | ;; too new version: 15.9.21.664 | 2786 | ;; too new version: 15.9.21.664 |
| 2672 | ;; too old (no support for mono) version: 14.0 | 2787 | ;; too old (no support for mono) version: 14.0 |
| 2673 | (define-public msbuild | 2788 | (define-public msbuild |
diff --git a/gnu/packages/patches/roslyn-2.8.2-csharp-7.2-for-csc-2.3.patch b/gnu/packages/patches/roslyn-2.8.2-csharp-7.2-for-csc-2.3.patch new file mode 100644 index 00000000000..369367ca245 --- /dev/null +++ b/gnu/packages/patches/roslyn-2.8.2-csharp-7.2-for-csc-2.3.patch | |||
| @@ -0,0 +1,665 @@ | |||
| 1 | Author: Danny Milosavljevic <dannym@friendly-machines.com> | ||
| 2 | Date: 2026-04-08 | ||
| 3 | Subject: Avoid keyword arguments that come before positional arguments--except as first argument. Avoid readonly struct. | ||
| 4 | |||
| 5 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder.ValueChecks.cs b/src/Compilers/CSharp/Portable/Binder/Binder.ValueChecks.cs | ||
| 6 | --- a/src/Compilers/CSharp/Portable/Binder/Binder.ValueChecks.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 7 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder.ValueChecks.cs 2026-04-08 01:57:17.283148573 +0000 | ||
| 8 | @@ -380,7 +380,7 @@ | ||
| 9 | var receiver = ((BoundPointerElementAccess)expr).Expression; | ||
| 10 | if (receiver is BoundFieldAccess fieldAccess && fieldAccess.FieldSymbol.IsFixed) | ||
| 11 | { | ||
| 12 | - return CheckValueKind(node, fieldAccess.ReceiverOpt, valueKind, checkingReceiver: true, diagnostics); | ||
| 13 | + return CheckValueKind(node, fieldAccess.ReceiverOpt, valueKind, true, diagnostics); | ||
| 14 | } | ||
| 15 | } | ||
| 16 | |||
| 17 | @@ -689,7 +689,7 @@ | ||
| 18 | // Only ref-assigns produce LValues | ||
| 19 | if (assignment.IsRef) | ||
| 20 | { | ||
| 21 | - return CheckValueKind(node, assignment.Left, valueKind, checkingReceiver: false, diagnostics); | ||
| 22 | + return CheckValueKind(node, assignment.Left, valueKind, false, diagnostics); | ||
| 23 | } | ||
| 24 | |||
| 25 | Error(diagnostics, GetStandardLvalueError(valueKind), node); | ||
| 26 | @@ -2075,7 +2075,7 @@ | ||
| 27 | assignment.Left, | ||
| 28 | escapeFrom, | ||
| 29 | escapeTo, | ||
| 30 | - checkingReceiver: false, | ||
| 31 | + false, | ||
| 32 | diagnostics); | ||
| 33 | } | ||
| 34 | |||
| 35 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder.WithQueryLambdaParametersBinder.cs b/src/Compilers/CSharp/Portable/Binder/Binder.WithQueryLambdaParametersBinder.cs | ||
| 36 | --- a/src/Compilers/CSharp/Portable/Binder/Binder.WithQueryLambdaParametersBinder.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 37 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder.WithQueryLambdaParametersBinder.cs 2026-04-08 01:57:17.286176376 +0000 | ||
| 38 | @@ -89,10 +89,10 @@ | ||
| 39 | LookupResult lookupResult = LookupResult.GetInstance(); | ||
| 40 | LookupOptions options = LookupOptions.MustBeInstance; | ||
| 41 | HashSet<DiagnosticInfo> useSiteDiagnostics = null; | ||
| 42 | - LookupMembersWithFallback(lookupResult, receiver.Type, name, 0, ref useSiteDiagnostics, basesBeingResolved: null, options: options); | ||
| 43 | + LookupMembersWithFallback(lookupResult, receiver.Type, name, 0, ref useSiteDiagnostics, null, options); | ||
| 44 | diagnostics.Add(node, useSiteDiagnostics); | ||
| 45 | |||
| 46 | - var result = BindMemberOfType(node, node, name, 0, indexed: false, receiver, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeSymbol>), lookupResult, BoundMethodGroupFlags.None, diagnostics); | ||
| 47 | + var result = BindMemberOfType(node, node, name, 0, false, receiver, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeSymbol>), lookupResult, BoundMethodGroupFlags.None, diagnostics); | ||
| 48 | lookupResult.Free(); | ||
| 49 | return result; | ||
| 50 | } | ||
| 51 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder_Await.cs b/src/Compilers/CSharp/Portable/Binder/Binder_Await.cs | ||
| 52 | --- a/src/Compilers/CSharp/Portable/Binder/Binder_Await.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 53 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder_Await.cs 2026-04-08 01:57:17.281209149 +0000 | ||
| 54 | @@ -327,7 +327,7 @@ | ||
| 55 | { | ||
| 56 | var receiver = new BoundLiteral(node, ConstantValue.Null, awaiterType); | ||
| 57 | var name = WellKnownMemberNames.IsCompleted; | ||
| 58 | - var qualified = BindInstanceMemberAccess(node, node, receiver, name, 0, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeSymbol>), invoked: false, indexed: false, diagnostics); | ||
| 59 | + var qualified = BindInstanceMemberAccess(node, node, receiver, name, 0, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeSymbol>), false, false, diagnostics); | ||
| 60 | if (qualified.HasAnyErrors) | ||
| 61 | { | ||
| 62 | isCompletedProperty = null; | ||
| 63 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder_Expressions.cs b/src/Compilers/CSharp/Portable/Binder/Binder_Expressions.cs | ||
| 64 | --- a/src/Compilers/CSharp/Portable/Binder/Binder_Expressions.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 65 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder_Expressions.cs 2026-04-08 01:58:18.449827968 +0000 | ||
| 66 | @@ -712,15 +712,15 @@ | ||
| 67 | // We will not check constraints at this point as this code path | ||
| 68 | // is failure-only and the caller is expected to produce a diagnostic. | ||
| 69 | var tupleType = TupleTypeSymbol.Create( | ||
| 70 | - locationOpt: null, | ||
| 71 | + null, | ||
| 72 | subExpressions.SelectAsArray(e => e.Type), | ||
| 73 | - elementLocations: default, | ||
| 74 | + default, | ||
| 75 | tupleNames, | ||
| 76 | Compilation, | ||
| 77 | - shouldCheckConstraints: false, | ||
| 78 | - errorPositions: disallowInferredNames ? inferredPositions : default); | ||
| 79 | + false, | ||
| 80 | + disallowInferredNames ? inferredPositions : default); | ||
| 81 | |||
| 82 | - return new BoundTupleLiteral(syntax, argumentNamesOpt: default, inferredPositions, subExpressions, tupleType); | ||
| 83 | + return new BoundTupleLiteral(syntax, default, inferredPositions, subExpressions, tupleType); | ||
| 84 | } | ||
| 85 | default: | ||
| 86 | throw ExceptionUtilities.UnexpectedValue(node.Kind()); | ||
| 87 | @@ -2726,11 +2726,11 @@ | ||
| 88 | return BindStackAllocWithInitializer( | ||
| 89 | node, | ||
| 90 | initializer, | ||
| 91 | - type: GetStackAllocType(node, bestType, diagnostics, out bool hasErrors), | ||
| 92 | - elementType: bestType, | ||
| 93 | - sizeOpt: null, | ||
| 94 | + GetStackAllocType(node, bestType, diagnostics, out bool hasErrors), | ||
| 95 | + bestType, | ||
| 96 | + null, | ||
| 97 | diagnostics, | ||
| 98 | - hasErrors: hasErrors, | ||
| 99 | + hasErrors, | ||
| 100 | boundInitializerExpressions); | ||
| 101 | } | ||
| 102 | |||
| 103 | @@ -3132,7 +3132,7 @@ | ||
| 104 | } | ||
| 105 | |||
| 106 | return node.Initializer == null | ||
| 107 | - ? new BoundStackAllocArrayCreation(node, elementType, count, initializerOpt: null, type, hasErrors: hasErrors) | ||
| 108 | + ? new BoundStackAllocArrayCreation(node, elementType, count, null, type, hasErrors) | ||
| 109 | : BindStackAllocWithInitializer(node, node.Initializer, type, elementType, count, diagnostics, hasErrors); | ||
| 110 | } | ||
| 111 | |||
| 112 | @@ -3929,13 +3929,13 @@ | ||
| 113 | |||
| 114 | // Bind member initializer value, i.e. right part of assignment | ||
| 115 | BoundExpression boundRight = BindInitializerExpressionOrValue( | ||
| 116 | - syntax: initializer.Right, | ||
| 117 | - type: boundLeft.Type, | ||
| 118 | - typeSyntax: boundLeft.Syntax, | ||
| 119 | - diagnostics: diagnostics); | ||
| 120 | + initializer.Right, | ||
| 121 | + boundLeft.Type, | ||
| 122 | + boundLeft.Syntax, | ||
| 123 | + diagnostics); | ||
| 124 | |||
| 125 | // Bind member initializer assignment expression | ||
| 126 | - return BindAssignment(initializer, boundLeft, boundRight, isRef: false, diagnostics); | ||
| 127 | + return BindAssignment(initializer, boundLeft, boundRight, false, diagnostics); | ||
| 128 | } | ||
| 129 | } | ||
| 130 | |||
| 131 | @@ -4403,12 +4403,12 @@ | ||
| 132 | |||
| 133 | if (implicitReceiver.Type.IsDynamic()) | ||
| 134 | { | ||
| 135 | - var hasErrors = ReportBadDynamicArguments(elementInitializer, boundElementInitializerExpressions, refKinds: default, diagnostics, queryClause: null); | ||
| 136 | + var hasErrors = ReportBadDynamicArguments(elementInitializer, boundElementInitializerExpressions, default, diagnostics, null); | ||
| 137 | |||
| 138 | return new BoundDynamicCollectionElementInitializer( | ||
| 139 | elementInitializer, | ||
| 140 | - arguments: boundElementInitializerExpressions, | ||
| 141 | - applicableMethods: ImmutableArray<MethodSymbol>.Empty, | ||
| 142 | + boundElementInitializerExpressions, | ||
| 143 | + ImmutableArray<MethodSymbol>.Empty, | ||
| 144 | type: GetSpecialType(SpecialType.System_Void, diagnostics, elementInitializer), | ||
| 145 | hasErrors: hasErrors); | ||
| 146 | } | ||
| 147 | @@ -4996,9 +4996,9 @@ | ||
| 148 | else | ||
| 149 | { | ||
| 150 | result.ReportDiagnostics( | ||
| 151 | - binder: this, location: errorLocation, nodeOpt: null, diagnostics, | ||
| 152 | - name: errorName, receiver: null, invokedExpression: null, analyzedArguments, | ||
| 153 | - memberGroup: candidateConstructors, typeContainingConstructors, delegateTypeBeingInvoked: null); | ||
| 154 | + this, errorLocation, null, diagnostics, | ||
| 155 | + errorName, null, null, analyzedArguments, | ||
| 156 | + candidateConstructors, typeContainingConstructors, null); | ||
| 157 | } | ||
| 158 | } | ||
| 159 | |||
| 160 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder_Invocation.cs b/src/Compilers/CSharp/Portable/Binder/Binder_Invocation.cs | ||
| 161 | --- a/src/Compilers/CSharp/Portable/Binder/Binder_Invocation.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 162 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder_Invocation.cs 2026-04-08 01:57:17.284392483 +0000 | ||
| 163 | @@ -83,7 +83,7 @@ | ||
| 164 | { | ||
| 165 | Debug.Assert(receiver != null); | ||
| 166 | |||
| 167 | - var boundExpression = BindInstanceMemberAccess(node, node, receiver, methodName, typeArgs.NullToEmpty().Length, typeArgsSyntax, typeArgs, invoked: true, indexed: false, diagnostics); | ||
| 168 | + var boundExpression = BindInstanceMemberAccess(node, node, receiver, methodName, typeArgs.NullToEmpty().Length, typeArgsSyntax, typeArgs, true, false, diagnostics); | ||
| 169 | |||
| 170 | // The other consumers of this helper (await and collection initializers) require the target member to be a method. | ||
| 171 | if (!allowFieldsAndProperties && (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess)) | ||
| 172 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder_Operators.cs b/src/Compilers/CSharp/Portable/Binder/Binder_Operators.cs | ||
| 173 | --- a/src/Compilers/CSharp/Portable/Binder/Binder_Operators.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 174 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder_Operators.cs 2026-04-08 01:57:17.288589747 +0000 | ||
| 175 | @@ -590,7 +590,7 @@ | ||
| 176 | |||
| 177 | if (!best.HasValue) | ||
| 178 | { | ||
| 179 | - resultSignature = new BinaryOperatorSignature(kind, leftType: null, rightType: null, CreateErrorType()); | ||
| 180 | + resultSignature = new BinaryOperatorSignature(kind, null, null, CreateErrorType()); | ||
| 181 | foundOperator = false; | ||
| 182 | } | ||
| 183 | else | ||
| 184 | @@ -612,7 +612,7 @@ | ||
| 185 | |||
| 186 | if (isNullableEquality) | ||
| 187 | { | ||
| 188 | - resultSignature = new BinaryOperatorSignature(kind | BinaryOperatorKind.NullableNull, leftType: null, rightType: null, | ||
| 189 | + resultSignature = new BinaryOperatorSignature(kind | BinaryOperatorKind.NullableNull, null, null, | ||
| 190 | GetSpecialType(SpecialType.System_Boolean, diagnostics, node)); | ||
| 191 | |||
| 192 | foundOperator = true; | ||
| 193 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder_Statements.cs b/src/Compilers/CSharp/Portable/Binder/Binder_Statements.cs | ||
| 194 | --- a/src/Compilers/CSharp/Portable/Binder/Binder_Statements.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 195 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder_Statements.cs 2026-04-08 01:57:17.284982789 +0000 | ||
| 196 | @@ -1166,11 +1166,11 @@ | ||
| 197 | initializer.Syntax, | ||
| 198 | initializer, | ||
| 199 | methodName, | ||
| 200 | - rightArity: 0, | ||
| 201 | - typeArgumentsSyntax: default, | ||
| 202 | - typeArguments: default, | ||
| 203 | - invoked: true, | ||
| 204 | - indexed: false, | ||
| 205 | + 0, | ||
| 206 | + default, | ||
| 207 | + default, | ||
| 208 | + true, | ||
| 209 | + false, | ||
| 210 | bindingDiagnostics); | ||
| 211 | |||
| 212 | if (boundAccess.Kind != BoundKind.MethodGroup) | ||
| 213 | @@ -1387,7 +1387,7 @@ | ||
| 214 | if (op1.Type.IsByRefLikeType) | ||
| 215 | { | ||
| 216 | var leftEscape = GetValEscape(op1, LocalScopeDepth); | ||
| 217 | - op2 = ValidateEscape(op2, leftEscape, isByRef: false, diagnostics); | ||
| 218 | + op2 = ValidateEscape(op2, leftEscape, false, diagnostics); | ||
| 219 | } | ||
| 220 | } | ||
| 221 | |||
| 222 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Binder_TupleOperators.cs b/src/Compilers/CSharp/Portable/Binder/Binder_TupleOperators.cs | ||
| 223 | --- a/src/Compilers/CSharp/Portable/Binder/Binder_TupleOperators.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 224 | +++ b/src/Compilers/CSharp/Portable/Binder/Binder_TupleOperators.cs 2026-04-08 01:57:17.289303605 +0000 | ||
| 225 | @@ -25,8 +25,8 @@ | ||
| 226 | |||
| 227 | // The converted types are only used for the semantic model, so we don't need the conversion diagnostics | ||
| 228 | DiagnosticBag discardDiagnostics = DiagnosticBag.GetInstance(); | ||
| 229 | - BoundExpression convertedLeft = ApplyConvertedTypes(left, operators, isRight: false, discardDiagnostics); | ||
| 230 | - BoundExpression convertedRight = ApplyConvertedTypes(right, operators, isRight: true, discardDiagnostics); | ||
| 231 | + BoundExpression convertedLeft = ApplyConvertedTypes(left, operators, false, discardDiagnostics); | ||
| 232 | + BoundExpression convertedRight = ApplyConvertedTypes(right, operators, true, discardDiagnostics); | ||
| 233 | discardDiagnostics.Free(); | ||
| 234 | |||
| 235 | TypeSymbol resultType = GetSpecialType(SpecialType.System_Boolean, diagnostics, node); | ||
| 236 | @@ -60,7 +60,7 @@ | ||
| 237 | builder.Add(ApplyConvertedTypes(arguments[i], multiple.Operators[i], isRight, diagnostics)); | ||
| 238 | } | ||
| 239 | |||
| 240 | - return tuple.Update(argumentNamesOpt: default, inferredNamesOpt: default, builder.ToImmutableAndFree(), tuple.Type); | ||
| 241 | + return tuple.Update(default, default, builder.ToImmutableAndFree(), tuple.Type); | ||
| 242 | } | ||
| 243 | |||
| 244 | // This element isn't getting a converted type | ||
| 245 | @@ -103,7 +103,7 @@ | ||
| 246 | BinaryOperatorAnalysisResult analysisResult; | ||
| 247 | |||
| 248 | bool foundOperator = BindSimpleBinaryOperatorParts(node, diagnostics, left, right, kind, | ||
| 249 | - out resultKind, originalUserDefinedOperators: out _, out signature, out analysisResult); | ||
| 250 | + out resultKind, out _, out signature, out analysisResult); | ||
| 251 | |||
| 252 | if (!foundOperator) | ||
| 253 | { | ||
| 254 | @@ -407,9 +407,9 @@ | ||
| 255 | |||
| 256 | ImmutableArray<Location> elementLocations = elements.SelectAsArray(e => e.Syntax.Location); | ||
| 257 | |||
| 258 | - var tuple = TupleTypeSymbol.Create(locationOpt: null, elementTypes: convertedTypes, | ||
| 259 | - elementLocations, elementNames: names, compilation, | ||
| 260 | - shouldCheckConstraints: true, errorPositions: default, syntax, diagnostics); | ||
| 261 | + var tuple = TupleTypeSymbol.Create(null, convertedTypes, | ||
| 262 | + elementLocations, names, compilation, | ||
| 263 | + true, default, syntax, diagnostics); | ||
| 264 | |||
| 265 | if (!isNullable) | ||
| 266 | { | ||
| 267 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/ForEachLoopBinder.cs b/src/Compilers/CSharp/Portable/Binder/ForEachLoopBinder.cs | ||
| 268 | --- a/src/Compilers/CSharp/Portable/Binder/ForEachLoopBinder.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 269 | +++ b/src/Compilers/CSharp/Portable/Binder/ForEachLoopBinder.cs 2026-04-08 01:57:17.280914487 +0000 | ||
| 270 | @@ -268,10 +268,10 @@ | ||
| 271 | |||
| 272 | hasErrors |= !CheckMethodReturnValueKind( | ||
| 273 | builder.CurrentPropertyGetter, | ||
| 274 | - callSyntaxOpt: null, | ||
| 275 | + null, | ||
| 276 | collectionExpr.Syntax, | ||
| 277 | requiredCurrentKind, | ||
| 278 | - checkingReceiver: false, | ||
| 279 | + false, | ||
| 280 | diagnostics); | ||
| 281 | } | ||
| 282 | |||
| 283 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversion.cs b/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversion.cs | ||
| 284 | --- a/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversion.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 285 | +++ b/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversion.cs 2026-04-08 01:57:17.280225176 +0000 | ||
| 286 | @@ -72,7 +72,7 @@ | ||
| 287 | private class DeconstructionUncommonData : UncommonData | ||
| 288 | { | ||
| 289 | internal DeconstructionUncommonData(DeconstructMethodInfo deconstructMethodInfoOpt, ImmutableArray<Conversion> nestedConversions) | ||
| 290 | - : base(isExtensionMethod: false, isArrayIndex: false, conversionResult: default, conversionMethod: null, nestedConversions) | ||
| 291 | + : base(false, false, default, null, nestedConversions) | ||
| 292 | { | ||
| 293 | Debug.Assert(!nestedConversions.IsDefaultOrEmpty); | ||
| 294 | DeconstructMethodInfo = deconstructMethodInfoOpt; | ||
| 295 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversions.cs b/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversions.cs | ||
| 296 | --- a/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversions.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 297 | +++ b/src/Compilers/CSharp/Portable/Binder/Semantics/Conversions/Conversions.cs 2026-04-08 01:57:17.279728415 +0000 | ||
| 298 | @@ -78,7 +78,7 @@ | ||
| 299 | } | ||
| 300 | else | ||
| 301 | { | ||
| 302 | - return binder.ResolveMethodGroup(source, analyzedArguments: null, isMethodGroupConversion: true, ref useSiteDiagnostics); | ||
| 303 | + return binder.ResolveMethodGroup(source, null, true, ref useSiteDiagnostics); | ||
| 304 | } | ||
| 305 | } | ||
| 306 | |||
| 307 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Binder/Semantics/OverloadResolution/OverloadResolution.cs b/src/Compilers/CSharp/Portable/Binder/Semantics/OverloadResolution/OverloadResolution.cs | ||
| 308 | --- a/src/Compilers/CSharp/Portable/Binder/Semantics/OverloadResolution/OverloadResolution.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 309 | +++ b/src/Compilers/CSharp/Portable/Binder/Semantics/OverloadResolution/OverloadResolution.cs 2026-04-08 01:57:17.281726569 +0000 | ||
| 310 | @@ -3015,7 +3015,7 @@ | ||
| 311 | arguments.Arguments.Count, | ||
| 312 | argumentAnalysis.ArgsToParamsOpt, | ||
| 313 | arguments.RefKinds, | ||
| 314 | - isMethodGroupConversion: false, | ||
| 315 | + false, | ||
| 316 | allowRefOmittedArguments, | ||
| 317 | out hasAnyRefOmittedArgument); | ||
| 318 | |||
| 319 | @@ -3027,7 +3027,7 @@ | ||
| 320 | arguments.Arguments.Count, | ||
| 321 | argumentAnalysis.ArgsToParamsOpt, | ||
| 322 | arguments.RefKinds, | ||
| 323 | - isMethodGroupConversion: false, | ||
| 324 | + false, | ||
| 325 | allowRefOmittedArguments); | ||
| 326 | |||
| 327 | // The member passed to the following call is returned in the result (possibly a constructed version of it). | ||
| 328 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/BoundTree/Constructors.cs b/src/Compilers/CSharp/Portable/BoundTree/Constructors.cs | ||
| 329 | --- a/src/Compilers/CSharp/Portable/BoundTree/Constructors.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 330 | +++ b/src/Compilers/CSharp/Portable/BoundTree/Constructors.cs 2026-04-08 01:57:17.279510577 +0000 | ||
| 331 | @@ -567,7 +567,7 @@ | ||
| 332 | internal partial class BoundAddressOfOperator | ||
| 333 | { | ||
| 334 | public BoundAddressOfOperator(SyntaxNode syntax, BoundExpression operand, TypeSymbol type, bool hasErrors = false) | ||
| 335 | - : this(syntax, operand, isManaged: false, type, hasErrors) | ||
| 336 | + : this(syntax, operand, false, type, hasErrors) | ||
| 337 | { | ||
| 338 | } | ||
| 339 | } | ||
| 340 | @@ -575,7 +575,7 @@ | ||
| 341 | internal partial class BoundForEachStatement | ||
| 342 | { | ||
| 343 | public BoundForEachStatement(SyntaxNode syntax, ForEachEnumeratorInfo enumeratorInfoOpt, Conversion elementConversion, BoundTypeExpression iterationVariableType, ImmutableArray<LocalSymbol> iterationVariables, BoundExpression expression, BoundForEachDeconstructStep deconstructionOpt, BoundStatement body, bool @checked, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors = false) : | ||
| 344 | - this(syntax, enumeratorInfoOpt, elementConversion, iterationVariableType, iterationVariables, iterationErrorExpressionOpt: null, expression, deconstructionOpt, body, @checked, breakLabel, continueLabel, hasErrors) | ||
| 345 | + this(syntax, enumeratorInfoOpt, elementConversion, iterationVariableType, iterationVariables, null, expression, deconstructionOpt, body, @checked, breakLabel, continueLabel, hasErrors) | ||
| 346 | { | ||
| 347 | } | ||
| 348 | } | ||
| 349 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs b/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs | ||
| 350 | --- a/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 351 | +++ b/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs 2026-04-08 01:57:17.279312666 +0000 | ||
| 352 | @@ -32,15 +32,15 @@ | ||
| 353 | ImmutableArray<byte> data = this.GetRawData(initExprs); | ||
| 354 | if (data.All(datum => datum == data[0])) | ||
| 355 | { | ||
| 356 | - _builder.EmitStackAllocBlockInitializer(data, inits.Syntax, emitInitBlock: true, _diagnostics); | ||
| 357 | + _builder.EmitStackAllocBlockInitializer(data, inits.Syntax, true, _diagnostics); | ||
| 358 | } | ||
| 359 | else if (elementType.SpecialType.SizeInBytes() == 1) | ||
| 360 | { | ||
| 361 | - _builder.EmitStackAllocBlockInitializer(data, inits.Syntax, emitInitBlock: false, _diagnostics); | ||
| 362 | + _builder.EmitStackAllocBlockInitializer(data, inits.Syntax, false, _diagnostics); | ||
| 363 | |||
| 364 | if (initializationStyle == ArrayInitializerStyle.Mixed) | ||
| 365 | { | ||
| 366 | - EmitElementStackAllocInitializers(elementType, initExprs, includeConstants: false); | ||
| 367 | + EmitElementStackAllocInitializers(elementType, initExprs, false); | ||
| 368 | } | ||
| 369 | } | ||
| 370 | else | ||
| 371 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Call.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Call.cs | ||
| 372 | --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Call.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 373 | +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Call.cs 2026-04-08 01:57:17.283964612 +0000 | ||
| 374 | @@ -465,7 +465,7 @@ | ||
| 375 | parameters, | ||
| 376 | argumentRefKindsOpt, | ||
| 377 | rewrittenArguments, | ||
| 378 | - forceLambdaSpilling: false, // lambda conversions can be re-orderd in calls without side affects | ||
| 379 | + false, // lambda conversions can be re-orderd in calls without side affects | ||
| 380 | actualArguments, | ||
| 381 | refKinds, | ||
| 382 | storesToTemps); | ||
| 383 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_CompoundAssignmentOperator.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_CompoundAssignmentOperator.cs | ||
| 384 | --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_CompoundAssignmentOperator.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 385 | +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_CompoundAssignmentOperator.cs 2026-04-08 01:57:17.285679855 +0000 | ||
| 386 | @@ -286,12 +286,12 @@ | ||
| 387 | parameters, | ||
| 388 | argumentRefKinds, | ||
| 389 | rewrittenArguments, | ||
| 390 | - forceLambdaSpilling: true, // lambdas must produce exactly one delegate so they must be spilled into a temp | ||
| 391 | + true, // lambdas must produce exactly one delegate so they must be spilled into a temp | ||
| 392 | actualArguments, | ||
| 393 | refKinds, | ||
| 394 | storesToTemps); | ||
| 395 | |||
| 396 | - // Step two: If we have a params array, build the array and fill in the argument. | ||
| 397 | + // Step two: If we have a params array, build the array and fill in the argument. | ||
| 398 | if (expanded) | ||
| 399 | { | ||
| 400 | BoundExpression array = BuildParamsArray(syntax, indexer, argsToParamsOpt, rewrittenArguments, parameters, actualArguments[actualArguments.Length - 1]); | ||
| 401 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_FixedStatement.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_FixedStatement.cs | ||
| 402 | --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_FixedStatement.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 403 | +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_FixedStatement.cs 2026-04-08 01:57:17.285919134 +0000 | ||
| 404 | @@ -382,9 +382,9 @@ | ||
| 405 | pinAndGetPtr = new BoundLoweredConditionalAccess( | ||
| 406 | initializerSyntax, | ||
| 407 | initializerExpr, | ||
| 408 | - hasValueMethodOpt: null, | ||
| 409 | - whenNotNull: pinAndGetPtr, | ||
| 410 | - whenNullOpt: null, // just return default(T*) | ||
| 411 | + null, | ||
| 412 | + pinAndGetPtr, | ||
| 413 | + null, // just return default(T*) | ||
| 414 | currentConditionalAccessID, | ||
| 415 | localType); | ||
| 416 | } | ||
| 417 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ForEachStatement.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ForEachStatement.cs | ||
| 418 | --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ForEachStatement.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 419 | +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_ForEachStatement.cs 2026-04-08 01:57:17.282578725 +0000 | ||
| 420 | @@ -437,15 +437,15 @@ | ||
| 421 | |||
| 422 | // (V)a[p] | ||
| 423 | BoundExpression iterationVarInitValue = MakeConversionNode( | ||
| 424 | - syntax: forEachSyntax, | ||
| 425 | - rewrittenOperand: BoundCall.Synthesized( | ||
| 426 | - syntax: forEachSyntax, | ||
| 427 | - receiverOpt: boundArrayVar, | ||
| 428 | + forEachSyntax, | ||
| 429 | + BoundCall.Synthesized( | ||
| 430 | + forEachSyntax, | ||
| 431 | + boundArrayVar, | ||
| 432 | indexerGet, | ||
| 433 | boundPositionVar), | ||
| 434 | - conversion: node.ElementConversion, | ||
| 435 | - rewrittenType: node.IterationVariableType.Type, | ||
| 436 | - @checked: node.Checked); | ||
| 437 | + node.ElementConversion, | ||
| 438 | + node.IterationVariableType.Type, | ||
| 439 | + @node.Checked); | ||
| 440 | |||
| 441 | // V v = (V)a[p]; /* OR */ (D1 d1, ...) = (V)a[p]; | ||
| 442 | ImmutableArray<LocalSymbol> iterationVariables = node.IterationVariables; | ||
| 443 | @@ -458,14 +458,14 @@ | ||
| 444 | |||
| 445 | // a.Length | ||
| 446 | BoundExpression arrayLength = BoundCall.Synthesized( | ||
| 447 | - syntax: forEachSyntax, | ||
| 448 | - receiverOpt: boundArrayVar, | ||
| 449 | + forEachSyntax, | ||
| 450 | + boundArrayVar, | ||
| 451 | lengthGet); | ||
| 452 | |||
| 453 | // p < a.Length | ||
| 454 | BoundExpression exitCondition = new BoundBinaryOperator( | ||
| 455 | - syntax: forEachSyntax, | ||
| 456 | - operatorKind: BinaryOperatorKind.IntLessThan, | ||
| 457 | + forEachSyntax, | ||
| 458 | + BinaryOperatorKind.IntLessThan, | ||
| 459 | left: boundPositionVar, | ||
| 460 | right: arrayLength, | ||
| 461 | constantValueOpt: null, | ||
| 462 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_PointerElementAccess.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_PointerElementAccess.cs | ||
| 463 | --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_PointerElementAccess.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 464 | +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_PointerElementAccess.cs 2026-04-08 01:57:17.285470974 +0000 | ||
| 465 | @@ -20,7 +20,7 @@ | ||
| 466 | { | ||
| 467 | var loweredFieldReceiver = VisitExpression(fieldAccess.ReceiverOpt); | ||
| 468 | fieldAccess = fieldAccess.Update(loweredFieldReceiver, fieldAccess.FieldSymbol, fieldAccess.ConstantValueOpt, fieldAccess.ResultKind, fieldAccess.Type); | ||
| 469 | - return new BoundAddressOfOperator(receiver.Syntax, fieldAccess, isManaged: true, fieldAccess.Type); | ||
| 470 | + return new BoundAddressOfOperator(receiver.Syntax, fieldAccess, true, fieldAccess.Type); | ||
| 471 | } | ||
| 472 | |||
| 473 | return VisitExpression(receiver); | ||
| 474 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_TupleBinaryOperator.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_TupleBinaryOperator.cs | ||
| 475 | --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_TupleBinaryOperator.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 476 | +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_TupleBinaryOperator.cs 2026-04-08 01:57:17.283671002 +0000 | ||
| 477 | @@ -143,12 +143,12 @@ | ||
| 478 | |||
| 479 | BoundExpression leftHasValue, leftValue; | ||
| 480 | bool isLeftNullable; | ||
| 481 | - MakeNullableParts(left, temps, innerEffects, outerEffects, saveHasValue: true, out leftHasValue, out leftValue, out isLeftNullable); | ||
| 482 | + MakeNullableParts(left, temps, innerEffects, outerEffects, true, out leftHasValue, out leftValue, out isLeftNullable); | ||
| 483 | |||
| 484 | BoundExpression rightHasValue, rightValue; | ||
| 485 | bool isRightNullable; | ||
| 486 | // no need for local for right.HasValue since used once | ||
| 487 | - MakeNullableParts(right, temps, innerEffects, outerEffects, saveHasValue: false, out rightHasValue, out rightValue, out isRightNullable); | ||
| 488 | + MakeNullableParts(right, temps, innerEffects, outerEffects, false, out rightHasValue, out rightValue, out isRightNullable); | ||
| 489 | |||
| 490 | // Produces: | ||
| 491 | // ... logical expression using leftValue and rightValue ... | ||
| 492 | @@ -158,7 +158,7 @@ | ||
| 493 | // leftValue = left.GetValueOrDefault(); (or left if !leftNullable) | ||
| 494 | // rightValue = right.GetValueOrDefault(); (or right if !rightNullable) | ||
| 495 | // ... logical expression using leftValue and rightValue ... | ||
| 496 | - BoundExpression innerSequence = MakeSequenceOrResultValue(locals: ImmutableArray<LocalSymbol>.Empty, innerEffects.ToImmutableAndFree(), logicalExpression); | ||
| 497 | + BoundExpression innerSequence = MakeSequenceOrResultValue(ImmutableArray<LocalSymbol>.Empty, innerEffects.ToImmutableAndFree(), logicalExpression); | ||
| 498 | |||
| 499 | if (!isLeftNullable && !isRightNullable) | ||
| 500 | { | ||
| 501 | @@ -340,14 +340,14 @@ | ||
| 502 | // !((left == right).op_false) | ||
| 503 | // (left != right).op_true | ||
| 504 | |||
| 505 | - BoundExpression dynamicResult = _dynamicFactory.MakeDynamicBinaryOperator(single.Kind, left, right, isCompoundAssignment: false, _compilation.DynamicType).ToExpression(); | ||
| 506 | + BoundExpression dynamicResult = _dynamicFactory.MakeDynamicBinaryOperator(single.Kind, left, right, false, _compilation.DynamicType).ToExpression(); | ||
| 507 | if (operatorKind == BinaryOperatorKind.Equal) | ||
| 508 | { | ||
| 509 | - return _factory.Not(MakeUnaryOperator(UnaryOperatorKind.DynamicFalse, left.Syntax, method: null, dynamicResult, boolType)); | ||
| 510 | + return _factory.Not(MakeUnaryOperator(UnaryOperatorKind.DynamicFalse, left.Syntax, null, dynamicResult, boolType)); | ||
| 511 | } | ||
| 512 | else | ||
| 513 | { | ||
| 514 | - return MakeUnaryOperator(UnaryOperatorKind.DynamicTrue, left.Syntax, method: null, dynamicResult, boolType); | ||
| 515 | + return MakeUnaryOperator(UnaryOperatorKind.DynamicTrue, left.Syntax, null, dynamicResult, boolType); | ||
| 516 | } | ||
| 517 | } | ||
| 518 | |||
| 519 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEMethodSymbol.cs b/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEMethodSymbol.cs | ||
| 520 | --- a/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEMethodSymbol.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 521 | +++ b/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEMethodSymbol.cs 2026-04-08 01:57:17.280561306 +0000 | ||
| 522 | @@ -591,7 +591,7 @@ | ||
| 523 | { | ||
| 524 | builder.Add(PEParameterSymbol.Create( | ||
| 525 | moduleSymbol, this, this.IsMetadataVirtual(), i, | ||
| 526 | - paramInfo[i + 1], isReturn: false, out isBadParameter)); | ||
| 527 | + paramInfo[i + 1], false, out isBadParameter)); | ||
| 528 | |||
| 529 | if (isBadParameter) | ||
| 530 | { | ||
| 531 | @@ -616,7 +616,7 @@ | ||
| 532 | |||
| 533 | var returnParam = PEParameterSymbol.Create( | ||
| 534 | moduleSymbol, this, this.IsMetadataVirtual(), 0, | ||
| 535 | - paramInfo[0], isReturn: true, out isBadParameter); | ||
| 536 | + paramInfo[0], true, out isBadParameter); | ||
| 537 | |||
| 538 | if (makeBad || isBadParameter) | ||
| 539 | { | ||
| 540 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEParameterSymbol.cs b/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEParameterSymbol.cs | ||
| 541 | --- a/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEParameterSymbol.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 542 | +++ b/src/Compilers/CSharp/Portable/Symbols/Metadata/PE/PEParameterSymbol.cs 2026-04-08 01:57:17.279949039 +0000 | ||
| 543 | @@ -177,7 +177,7 @@ | ||
| 544 | return Create( | ||
| 545 | moduleSymbol, containingSymbol, isContainingSymbolVirtual, ordinal, | ||
| 546 | parameterInfo.IsByRef, parameterInfo.RefCustomModifiers, parameterInfo.Type, | ||
| 547 | - handle, parameterInfo.CustomModifiers, isReturn: false, out isBad); | ||
| 548 | + handle, parameterInfo.CustomModifiers, false, out isBad); | ||
| 549 | } | ||
| 550 | |||
| 551 | private PEParameterSymbol( | ||
| 552 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/CSharp/Portable/Symbols/Source/SourceLocalSymbol.cs b/src/Compilers/CSharp/Portable/Symbols/Source/SourceLocalSymbol.cs | ||
| 553 | --- a/src/Compilers/CSharp/Portable/Symbols/Source/SourceLocalSymbol.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 554 | +++ b/src/Compilers/CSharp/Portable/Symbols/Source/SourceLocalSymbol.cs 2026-04-08 01:57:17.282290665 +0000 | ||
| 555 | @@ -604,7 +604,7 @@ | ||
| 556 | SyntaxToken identifierToken, | ||
| 557 | ExpressionSyntax collection, | ||
| 558 | LocalDeclarationKind declarationKind) : | ||
| 559 | - base(containingSymbol, scopeBinder, allowRefKind: true, typeSyntax, identifierToken, declarationKind) | ||
| 560 | + base(containingSymbol, scopeBinder, true, typeSyntax, identifierToken, declarationKind) | ||
| 561 | { | ||
| 562 | Debug.Assert(declarationKind == LocalDeclarationKind.ForEachIterationVariable); | ||
| 563 | _collection = collection; | ||
| 564 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/Core/Portable/Collections/BitVector.cs b/src/Compilers/Core/Portable/Collections/BitVector.cs | ||
| 565 | --- a/src/Compilers/Core/Portable/Collections/BitVector.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 566 | +++ b/src/Compilers/Core/Portable/Collections/BitVector.cs 2026-04-08 01:57:17.259296305 +0000 | ||
| 567 | @@ -216,7 +216,7 @@ | ||
| 568 | /// For the purposes of the intersection, any bits beyond the current length will be treated as zeroes. | ||
| 569 | /// Return true if any changes were made to the bits of this bit vector. | ||
| 570 | /// </summary> | ||
| 571 | - public bool IntersectWith(in BitVector other) | ||
| 572 | + public bool IntersectWith(BitVector other) | ||
| 573 | { | ||
| 574 | bool anyChanged = false; | ||
| 575 | int otherLength = other._bits.Length; | ||
| 576 | @@ -268,7 +268,7 @@ | ||
| 577 | /// <returns> | ||
| 578 | /// True if any bits were set as a result of the union. | ||
| 579 | /// </returns> | ||
| 580 | - public bool UnionWith(in BitVector other) | ||
| 581 | + public bool UnionWith(BitVector other) | ||
| 582 | { | ||
| 583 | bool anyChanged = false; | ||
| 584 | |||
| 585 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/Core/Portable/CommandLine/CommonCompiler.cs b/src/Compilers/Core/Portable/CommandLine/CommonCompiler.cs | ||
| 586 | --- a/src/Compilers/Core/Portable/CommandLine/CommonCompiler.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 587 | +++ b/src/Compilers/Core/Portable/CommandLine/CommonCompiler.cs 2026-04-08 01:57:17.279039244 +0000 | ||
| 588 | @@ -647,7 +647,7 @@ | ||
| 589 | analyzerDriver = null; | ||
| 590 | |||
| 591 | // Print the diagnostics produced during the parsing stage and exit if there were any errors. | ||
| 592 | - compilation.GetDiagnostics(CompilationStage.Parse, includeEarlierStages: false, diagnostics, cancellationToken); | ||
| 593 | + compilation.GetDiagnostics(CompilationStage.Parse, false, diagnostics, cancellationToken); | ||
| 594 | if (diagnostics.HasAnyErrors()) | ||
| 595 | { | ||
| 596 | return; | ||
| 597 | @@ -673,7 +673,7 @@ | ||
| 598 | reportAnalyzer = Arguments.ReportAnalyzer && !analyzers.IsEmpty; | ||
| 599 | } | ||
| 600 | |||
| 601 | - compilation.GetDiagnostics(CompilationStage.Declare, includeEarlierStages: false, diagnostics, cancellationToken); | ||
| 602 | + compilation.GetDiagnostics(CompilationStage.Declare, false, diagnostics, cancellationToken); | ||
| 603 | if (diagnostics.HasAnyErrors()) | ||
| 604 | { | ||
| 605 | return; | ||
| 606 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs b/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs | ||
| 607 | --- a/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 608 | +++ b/src/Compilers/Core/Portable/Diagnostic/Diagnostic.cs 2026-04-08 01:57:17.278667628 +0000 | ||
| 609 | @@ -105,7 +105,7 @@ | ||
| 610 | ImmutableDictionary<string, string> properties, | ||
| 611 | params object[] messageArgs) | ||
| 612 | { | ||
| 613 | - return Create(descriptor, location, effectiveSeverity: descriptor.DefaultSeverity, additionalLocations, properties, messageArgs); | ||
| 614 | + return Create(descriptor, location, descriptor.DefaultSeverity, additionalLocations, properties, messageArgs); | ||
| 615 | } | ||
| 616 | |||
| 617 | /// <summary> | ||
| 618 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/Core/Portable/PEWriter/DebugDirectoryExtensions.cs b/src/Compilers/Core/Portable/PEWriter/DebugDirectoryExtensions.cs | ||
| 619 | --- a/src/Compilers/Core/Portable/PEWriter/DebugDirectoryExtensions.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 620 | +++ b/src/Compilers/Core/Portable/PEWriter/DebugDirectoryExtensions.cs 2026-04-08 01:57:17.236542465 +0000 | ||
| 621 | @@ -88,7 +88,7 @@ | ||
| 622 | } | ||
| 623 | } | ||
| 624 | |||
| 625 | - internal readonly struct PdbChecksumDebugDirectoryData | ||
| 626 | + internal struct PdbChecksumDebugDirectoryData | ||
| 627 | { | ||
| 628 | /// <summary> | ||
| 629 | /// Checksum algorithm name. | ||
| 630 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/Core/Portable/Serialization/ObjectBinderSnapshot.cs b/src/Compilers/Core/Portable/Serialization/ObjectBinderSnapshot.cs | ||
| 631 | --- a/src/Compilers/Core/Portable/Serialization/ObjectBinderSnapshot.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 632 | +++ b/src/Compilers/Core/Portable/Serialization/ObjectBinderSnapshot.cs 2026-04-08 01:57:17.236643093 +0000 | ||
| 633 | @@ -6,7 +6,7 @@ | ||
| 634 | |||
| 635 | namespace Roslyn.Utilities | ||
| 636 | { | ||
| 637 | - internal readonly struct ObjectBinderSnapshot | ||
| 638 | + internal struct ObjectBinderSnapshot | ||
| 639 | { | ||
| 640 | private readonly Dictionary<Type, int> _typeToIndex; | ||
| 641 | private readonly ImmutableArray<Type> _types; | ||
| 642 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/Shared/BuildServerConnection.cs b/src/Compilers/Shared/BuildServerConnection.cs | ||
| 643 | --- a/src/Compilers/Shared/BuildServerConnection.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 644 | +++ b/src/Compilers/Shared/BuildServerConnection.cs 2026-04-08 02:04:15.196339561 +0000 | ||
| 645 | @@ -126,7 +126,7 @@ | ||
| 646 | try | ||
| 647 | { | ||
| 648 | var clientMutexName = GetClientMutexName(pipeName); | ||
| 649 | - clientMutex = new Mutex(initiallyOwned: true, name: clientMutexName, out holdsMutex); | ||
| 650 | + clientMutex = new Mutex(true, clientMutexName, out holdsMutex); | ||
| 651 | } | ||
| 652 | catch | ||
| 653 | { | ||
| 654 | diff -ruN '--exclude=*.resx' '--exclude=*.xlf' '--exclude=*.xml' a/src/Compilers/Shared/DesktopBuildClient.cs b/src/Compilers/Shared/DesktopBuildClient.cs | ||
| 655 | --- a/src/Compilers/Shared/DesktopBuildClient.cs 2018-05-16 21:06:56.000000000 +0000 | ||
| 656 | +++ b/src/Compilers/Shared/DesktopBuildClient.cs 2026-04-08 02:04:15.199139747 +0000 | ||
| 657 | @@ -33,7 +33,7 @@ | ||
| 658 | { | ||
| 659 | // Register encodings for console | ||
| 660 | // https://github.com/dotnet/roslyn/issues/10785 | ||
| 661 | - System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); | ||
| 662 | + // CodePagesEncodingProvider not available in Mono | ||
| 663 | } | ||
| 664 | |||
| 665 | var client = new DesktopBuildClient(language, compileFunc, analyzerAssemblyLoader); | ||
