From ae836bbaa0c813b2eb3fd5029e2363b6368fea2e Mon Sep 17 00:00:00 2001
From: Y-YoL <11359025+Y-YoL@users.noreply.github.com>
Date: Sun, 23 Jul 2023 20:48:50 +0900
Subject: [PATCH 1/3] Added settings to allow debuggers to be attached
---
src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj | 4 +++-
src/NonCopyable/NonCopyable/NonCopyable.csproj | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj b/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj
index 91cf7c7..361cd86 100644
--- a/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj
+++ b/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj
@@ -15,7 +15,9 @@
-
+
+ Analyzer
+
diff --git a/src/NonCopyable/NonCopyable/NonCopyable.csproj b/src/NonCopyable/NonCopyable/NonCopyable.csproj
index 7b9743b..6c4ac46 100644
--- a/src/NonCopyable/NonCopyable/NonCopyable.csproj
+++ b/src/NonCopyable/NonCopyable/NonCopyable.csproj
@@ -20,6 +20,7 @@ Allow usage of non-copyable in conditional expressions (? :).
Treat return statement as having move semantics for locals and parameters.
NonCopyable, analyzers
true
+ true
From 8b98c236847a0c25882e97fe11c92da02d2c5dbb Mon Sep 17 00:00:00 2001
From: Y-YoL <11359025+Y-YoL@users.noreply.github.com>
Date: Sun, 23 Jul 2023 21:09:59 +0900
Subject: [PATCH 2/3] Fix test exception
Because the return of a local variable is treated as move
---
.../NonCopyable/Generics/Diagnostic/Results.json | 8 --------
.../DataSource/NonCopyable/Generics/Source/Class1.csx | 2 +-
2 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Diagnostic/Results.json b/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Diagnostic/Results.json
index 3002488..31dadc5 100644
--- a/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Diagnostic/Results.json
+++ b/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Diagnostic/Results.json
@@ -7,14 +7,6 @@
"path": "Class1.csx",
"message-args": [ "T" ]
},
- {
- "id": "NoCopy05",
- "sevirity": "Error",
- "line": 33,
- "column": 16,
- "path": "Class1.csx",
- "message-args": [ "T" ]
- },
{
"id": "NoCopy04",
"sevirity": "Error",
diff --git a/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Source/Class1.csx b/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Source/Class1.csx
index fc1f43a..7e811f2 100644
--- a/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Source/Class1.csx
+++ b/src/NonCopyable/NonCopyable.Test/DataSource/NonCopyable/Generics/Source/Class1.csx
@@ -30,7 +30,7 @@ static class Ex1
public static T Constraint<[NonCopyable] T>(ref this T x) where T : struct
{
var t = x; // ❌
- return t; // ❌
+ return t;
}
}
From ea25c9b5c948e2d8ff372d46cb273d7c42de018e Mon Sep 17 00:00:00 2001
From: Y-YoL <11359025+Y-YoL@users.noreply.github.com>
Date: Sun, 23 Jul 2023 22:37:52 +0900
Subject: [PATCH 3/3] Fix DifferentAssembly tests
Added assembly reference because MyNonCopyable type was not recognized
https://github.com/dotnet/roslyn/issues/43945
---
src/NonCopyable.sln | 24 ++++++++++++-------
.../NonCopyable.Test/NonCopyable.Test.csproj | 1 +
.../NonCopyable.Test/NonCopyable.cs | 8 ++++++-
.../NonCopyable.TestTypes.csproj | 7 ++++++
.../TestTypes/MyNonCopyable.cs | 0
.../TestTypes/NonCopyableAttribute.cs | 0
6 files changed, 30 insertions(+), 10 deletions(-)
create mode 100644 src/NonCopyable/NonCopyable.TestTypes/NonCopyable.TestTypes.csproj
rename src/NonCopyable/{NonCopyable.Test => NonCopyable.TestTypes}/TestTypes/MyNonCopyable.cs (100%)
rename src/NonCopyable/{NonCopyable.Test => NonCopyable.TestTypes}/TestTypes/NonCopyableAttribute.cs (100%)
diff --git a/src/NonCopyable.sln b/src/NonCopyable.sln
index e7ececc..4785ba0 100644
--- a/src/NonCopyable.sln
+++ b/src/NonCopyable.sln
@@ -1,13 +1,15 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2003
+# Visual Studio Version 17
+VisualStudioVersion = 17.6.33829.357
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NonCopyable", "NonCopyable\NonCopyable\NonCopyable.csproj", "{CC552C73-1EA3-457B-8E98-2D5D3213C5C5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NonCopyable", "NonCopyable\NonCopyable\NonCopyable.csproj", "{CC552C73-1EA3-457B-8E98-2D5D3213C5C5}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NonCopyable.Test", "NonCopyable\NonCopyable.Test\NonCopyable.Test.csproj", "{88F29EA0-BB85-4E16-AF40-E48B69085017}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NonCopyable.Test", "NonCopyable\NonCopyable.Test\NonCopyable.Test.csproj", "{88F29EA0-BB85-4E16-AF40-E48B69085017}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NonCopyable.Vsix", "NonCopyable\NonCopyable.Vsix\NonCopyable.Vsix.csproj", "{6830D342-6930-43F8-AA43-2E222DE700E2}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NonCopyable.Vsix", "NonCopyable\NonCopyable.Vsix\NonCopyable.Vsix.csproj", "{82193301-CA7B-41C0-BCEF-01503E0A15EB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NonCopyable.TestTypes", "NonCopyable\NonCopyable.TestTypes\NonCopyable.TestTypes.csproj", "{D3F9BFB6-63A3-4E36-A2DC-86D5AC16DBE2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -23,10 +25,14 @@ Global
{88F29EA0-BB85-4E16-AF40-E48B69085017}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88F29EA0-BB85-4E16-AF40-E48B69085017}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88F29EA0-BB85-4E16-AF40-E48B69085017}.Release|Any CPU.Build.0 = Release|Any CPU
- {6830D342-6930-43F8-AA43-2E222DE700E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6830D342-6930-43F8-AA43-2E222DE700E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6830D342-6930-43F8-AA43-2E222DE700E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6830D342-6930-43F8-AA43-2E222DE700E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {82193301-CA7B-41C0-BCEF-01503E0A15EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {82193301-CA7B-41C0-BCEF-01503E0A15EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {82193301-CA7B-41C0-BCEF-01503E0A15EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {82193301-CA7B-41C0-BCEF-01503E0A15EB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D3F9BFB6-63A3-4E36-A2DC-86D5AC16DBE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D3F9BFB6-63A3-4E36-A2DC-86D5AC16DBE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D3F9BFB6-63A3-4E36-A2DC-86D5AC16DBE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D3F9BFB6-63A3-4E36-A2DC-86D5AC16DBE2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj b/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj
index 361cd86..2f4c136 100644
--- a/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj
+++ b/src/NonCopyable/NonCopyable.Test/NonCopyable.Test.csproj
@@ -15,6 +15,7 @@
+
Analyzer
diff --git a/src/NonCopyable/NonCopyable.Test/NonCopyable.cs b/src/NonCopyable/NonCopyable.Test/NonCopyable.cs
index 667b6c2..5bed6f9 100644
--- a/src/NonCopyable/NonCopyable.Test/NonCopyable.cs
+++ b/src/NonCopyable/NonCopyable.Test/NonCopyable.cs
@@ -1,6 +1,8 @@
using System.Collections.Generic;
+using System.Reflection;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
+using NonCopyable.Test.TestTypes;
using TestHelper;
using Xunit;
@@ -36,7 +38,11 @@ protected override IEnumerable References
get
{
foreach (var r in base.References) yield return r;
- yield return MetadataReference.CreateFromFile(GetType().Assembly.Location);
+ yield return MetadataReference.CreateFromFile(typeof(MyNonCopyable).Assembly.Location);
+ foreach(var name in typeof(MyNonCopyable).Assembly.GetReferencedAssemblies())
+ {
+ yield return MetadataReference.CreateFromFile(Assembly.Load(name).Location);
+ }
}
}
}
diff --git a/src/NonCopyable/NonCopyable.TestTypes/NonCopyable.TestTypes.csproj b/src/NonCopyable/NonCopyable.TestTypes/NonCopyable.TestTypes.csproj
new file mode 100644
index 0000000..dbc1517
--- /dev/null
+++ b/src/NonCopyable/NonCopyable.TestTypes/NonCopyable.TestTypes.csproj
@@ -0,0 +1,7 @@
+
+
+
+ net6.0
+
+
+
diff --git a/src/NonCopyable/NonCopyable.Test/TestTypes/MyNonCopyable.cs b/src/NonCopyable/NonCopyable.TestTypes/TestTypes/MyNonCopyable.cs
similarity index 100%
rename from src/NonCopyable/NonCopyable.Test/TestTypes/MyNonCopyable.cs
rename to src/NonCopyable/NonCopyable.TestTypes/TestTypes/MyNonCopyable.cs
diff --git a/src/NonCopyable/NonCopyable.Test/TestTypes/NonCopyableAttribute.cs b/src/NonCopyable/NonCopyable.TestTypes/TestTypes/NonCopyableAttribute.cs
similarity index 100%
rename from src/NonCopyable/NonCopyable.Test/TestTypes/NonCopyableAttribute.cs
rename to src/NonCopyable/NonCopyable.TestTypes/TestTypes/NonCopyableAttribute.cs