From dc8c67cccf60efab70ebc92926dcf1740fe87d09 Mon Sep 17 00:00:00 2001 From: Bartosz Klonowski Date: Sun, 10 Dec 2023 22:23:45 +0100 Subject: [PATCH 1/6] Create initial page for CS8355 --- .../compiler-messages/cs8355.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 docs/csharp/language-reference/compiler-messages/cs8355.md diff --git a/docs/csharp/language-reference/compiler-messages/cs8355.md b/docs/csharp/language-reference/compiler-messages/cs8355.md new file mode 100644 index 0000000000000..360dab1b1b49e --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/cs8355.md @@ -0,0 +1,36 @@ +--- +description: "Compiler Error CS8355" +title: "Compiler Error CS8355" +ms.date: 12/10/2023 +f1_keywords: + - "CS8355" +helpviewer_keywords: + - "CS8355" +--- +# Compiler Error CS8355 + +An in parameter cannot have the Out attribute. + +The parameter of a method can't be set as being passed by value, while informing interop marshaler to treat this parameter as passed by reference to the native code. +
will contradict to the `in` keyword when [marshalling](../../../standard/native-interop/type-marshalling.md). + +## Example + +The following sample generates CS8355: + +```csharp +using System.Runtime.InteropServices; + +class Program +{ + public static void Example([Out] in int value) // CS8355 + { + } +} +``` + +## See also + +- [Default Marshalling Behavior](default-marshalling-behavior.md) +- [Reference parameters](../keywords/method-parameters.md#reference-parameters) +- [CS8328](./cs8328.md) From c9410fdb5e732c6ba53f01c7cd745a9e8c5e2bfd Mon Sep 17 00:00:00 2001 From: Bartosz Klonowski Date: Sun, 10 Dec 2023 22:25:31 +0100 Subject: [PATCH 2/6] Remove CS8355 from list of not yet documented errors --- .../misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md b/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md index 83a33773c430b..a88eac6e22c36 100644 --- a/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md +++ b/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md @@ -329,7 +329,6 @@ f1_keywords: - "CS8349" - "CS8350" - "CS8353" - - "CS8355" - "CS8356" - "CS8357" - "CS8359" From 2cff4568678717ec7b5539ea30a8a0a5861d9630 Mon Sep 17 00:00:00 2001 From: Bartosz Klonowski Date: Sun, 10 Dec 2023 22:31:45 +0100 Subject: [PATCH 3/6] Correct the link to default marshalling behavior page --- docs/csharp/language-reference/compiler-messages/cs8355.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/compiler-messages/cs8355.md b/docs/csharp/language-reference/compiler-messages/cs8355.md index 360dab1b1b49e..f106bb3b48bc7 100644 --- a/docs/csharp/language-reference/compiler-messages/cs8355.md +++ b/docs/csharp/language-reference/compiler-messages/cs8355.md @@ -31,6 +31,6 @@ class Program ## See also -- [Default Marshalling Behavior](default-marshalling-behavior.md) +- [Default Marshalling Behavior](../../../framework/interop/default-marshalling-behavior.md) - [Reference parameters](../keywords/method-parameters.md#reference-parameters) - [CS8328](./cs8328.md) From b6ceaf68c52f5653988eb90932e7a2358e8837ff Mon Sep 17 00:00:00 2001 From: Bartosz Klonowski Date: Sun, 10 Dec 2023 22:32:23 +0100 Subject: [PATCH 4/6] Remove not yet existing CS8328 page link --- docs/csharp/language-reference/compiler-messages/cs8355.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/csharp/language-reference/compiler-messages/cs8355.md b/docs/csharp/language-reference/compiler-messages/cs8355.md index f106bb3b48bc7..0069e8b0c56ed 100644 --- a/docs/csharp/language-reference/compiler-messages/cs8355.md +++ b/docs/csharp/language-reference/compiler-messages/cs8355.md @@ -33,4 +33,3 @@ class Program - [Default Marshalling Behavior](../../../framework/interop/default-marshalling-behavior.md) - [Reference parameters](../keywords/method-parameters.md#reference-parameters) -- [CS8328](./cs8328.md) From 39ab17041bc8534eae8765009ec68cea5251daa4 Mon Sep 17 00:00:00 2001 From: Bartosz Klonowski <70535775+BartoszKlonowski@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:52:20 +0100 Subject: [PATCH 5/6] Reword passing as value and reference to read only and writable Co-authored-by: Bill Wagner --- docs/csharp/language-reference/compiler-messages/cs8355.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/compiler-messages/cs8355.md b/docs/csharp/language-reference/compiler-messages/cs8355.md index 0069e8b0c56ed..e428f90d5c007 100644 --- a/docs/csharp/language-reference/compiler-messages/cs8355.md +++ b/docs/csharp/language-reference/compiler-messages/cs8355.md @@ -11,7 +11,7 @@ helpviewer_keywords: An in parameter cannot have the Out attribute. -The parameter of a method can't be set as being passed by value, while informing interop marshaler to treat this parameter as passed by reference to the native code. +The parameter of a method can't be declared as read only, while informing interop marshaler to treat this parameter as writable by the native code.
will contradict to the `in` keyword when [marshalling](../../../standard/native-interop/type-marshalling.md). ## Example From d8feddbf3f48dcb36bcb8dd7b8869dc276cc4e7d Mon Sep 17 00:00:00 2001 From: Bartosz Klonowski Date: Mon, 11 Dec 2023 21:19:00 +0100 Subject: [PATCH 6/6] Add new CS8355 to the TOC --- docs/csharp/language-reference/compiler-messages/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/csharp/language-reference/compiler-messages/toc.yml b/docs/csharp/language-reference/compiler-messages/toc.yml index 469d80e7a4b36..23c400d40f763 100644 --- a/docs/csharp/language-reference/compiler-messages/toc.yml +++ b/docs/csharp/language-reference/compiler-messages/toc.yml @@ -1608,6 +1608,8 @@ items: href: cs8334.md - name: CS8354 href: cs8354.md + - name: CS8355 + href: cs8355.md - name: CS8403 href: cs8403.md - name: CS8410