Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitek Karas <10670590+vitek-karas@users.noreply.github.com>2022-08-01 23:08:26 +0300
committerGitHub <noreply@github.com>2022-08-01 23:08:26 +0300
commit54fc09b33f03a5d5102742630b00ac8c6bfb01ad (patch)
tree8119ec09dcf6087fef71406e42e14f7e60ca59e4
parent783014aa709a30c6b28b4b637a19eafe6e3e0ebb (diff)
Sync test changes from AOT (#2912)
-rw-r--r--test/Mono.Linker.Tests.Cases.Expectations/Assertions/ExpectedWarningAttribute.cs2
-rw-r--r--test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogContainsAttribute.cs4
-rw-r--r--test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogDoesNotContainAttribute.cs2
-rw-r--r--test/Mono.Linker.Tests.Cases.Expectations/Assertions/ProducedBy.cs3
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/ArrayDataFlow.cs110
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/AssemblyQualifiedNameDataflow.cs6
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/ByRefDataflow.cs8
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedCodeDataflow.cs12
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedTypes.cs2
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/EmptyArrayIntrinsicsDataFlow.cs5
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/ExceptionalDataFlow.cs48
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/FieldDataFlow.cs6
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/MethodByRefReturnDataFlow.cs8
-rw-r--r--test/Mono.Linker.Tests.Cases/DataFlow/UnresolvedMembers.cs20
14 files changed, 129 insertions, 107 deletions
diff --git a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ExpectedWarningAttribute.cs b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ExpectedWarningAttribute.cs
index 2df90c4fc..94d9f1c2c 100644
--- a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ExpectedWarningAttribute.cs
+++ b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ExpectedWarningAttribute.cs
@@ -23,7 +23,7 @@ namespace Mono.Linker.Tests.Cases.Expectations.Assertions
/// Property used by the result checkers of trimmer and analyzers to determine whether
/// the tool should have produced the specified warning on the annotated member.
/// </summary>
- public ProducedBy ProducedBy { get; set; } = ProducedBy.TrimmerAndAnalyzer;
+ public ProducedBy ProducedBy { get; set; } = ProducedBy.TrimmerAnalyzerAndNativeAot;
public bool CompilerGeneratedCode { get; set; }
}
diff --git a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogContainsAttribute.cs b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogContainsAttribute.cs
index a3d5a75d1..de9b8478b 100644
--- a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogContainsAttribute.cs
+++ b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogContainsAttribute.cs
@@ -21,6 +21,6 @@ namespace Mono.Linker.Tests.Cases.Expectations.Assertions
/// Property used by the result checkers of trimmer and analyzers to determine whether
/// the tool should have produced the specified warning on the annotated member.
/// </summary>
- public ProducedBy ProducedBy { get; set; } = ProducedBy.TrimmerAndAnalyzer;
+ public ProducedBy ProducedBy { get; set; } = ProducedBy.TrimmerAnalyzerAndNativeAot;
}
-} \ No newline at end of file
+}
diff --git a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogDoesNotContainAttribute.cs b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogDoesNotContainAttribute.cs
index e67043742..c5b47210e 100644
--- a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogDoesNotContainAttribute.cs
+++ b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/LogDoesNotContainAttribute.cs
@@ -21,6 +21,6 @@ namespace Mono.Linker.Tests.Cases.Expectations.Assertions
/// Property used by the result checkers of trimmer and analyzers to determine whether
/// the tool should have produced the specified warning on the annotated member.
/// </summary>
- public ProducedBy ProducedBy { get; set; } = ProducedBy.TrimmerAndAnalyzer;
+ public ProducedBy ProducedBy { get; set; } = ProducedBy.TrimmerAnalyzerAndNativeAot;
}
}
diff --git a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ProducedBy.cs b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ProducedBy.cs
index 0b70ed776..7840516cc 100644
--- a/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ProducedBy.cs
+++ b/test/Mono.Linker.Tests.Cases.Expectations/Assertions/ProducedBy.cs
@@ -15,6 +15,7 @@ namespace Mono.Linker.Tests.Cases.Expectations.Assertions
{
Trimmer = 1,
Analyzer = 2,
- TrimmerAndAnalyzer = Trimmer | Analyzer
+ NativeAot = 4,
+ TrimmerAnalyzerAndNativeAot = Trimmer | Analyzer | NativeAot
}
}
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/ArrayDataFlow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/ArrayDataFlow.cs
index 2caf1fc83..9ce584fb9 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/ArrayDataFlow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/ArrayDataFlow.cs
@@ -113,7 +113,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
ProducedBy = ProducedBy.Analyzer)]
// https://github.com/dotnet/linker/issues/2737
[ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll),
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArraySetElementOneElementMerged ()
{
Type[] arr = new Type[1];
@@ -201,7 +201,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
// Trimmer code doesnt handle locals from different branches separetely, therefore merges incorrectly GetMethods with Unknown producing both warnings
- [ExpectedWarning ("IL2072", nameof (ArrayDataFlow.GetMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2072", nameof (ArrayDataFlow.GetMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll))]
static void TestMergedArrayElementWithUnknownIndex (int i)
{
@@ -225,9 +225,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
// https://github.com/dotnet/linker/issues/2680 - analyzer doesn't reset array in this case
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// https://github.com/dotnet/linker/issues/2680 - analyzer doesn't reset array in this case
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayResetGetElementOnByRefArray (int i = 0)
{
Type[] arr = new Type[] { typeof (TestType), typeof (TestType) };
@@ -301,11 +301,13 @@ namespace Mono.Linker.Tests.Cases.DataFlow
TestArrayResetGetElementOnByRefArray ();
TestArrayResetAfterCall ();
TestArrayResetAfterAssignment ();
+
+ TestAddressOfElement ();
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayWithInitializerOneElementStaticType ()
{
Type[,] arr = new Type[,] { { typeof (TestType) } };
@@ -313,9 +315,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
arr[0, 1].RequiresPublicMethods (); // Should warn - unknown value at this index
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayWithInitializerOneElementParameter ([DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.All)] Type type)
{
Type[,] arr = new Type[,] { { type } };
@@ -323,11 +325,11 @@ namespace Mono.Linker.Tests.Cases.DataFlow
arr[0, 1].RequiresPublicMethods (); // Should warn - unknown value at this index
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Below are because we do not handle Multi dimensional arrays
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayWithInitializerMultipleElementsStaticType ()
{
Type[,] arr = new Type[,] { { typeof (TestType), typeof (TestType), typeof (TestType) } };
@@ -338,13 +340,13 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
// Bug
- // [ExpectedWarning ("IL2087", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ // [ExpectedWarning ("IL2087", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Below are because we do not handle Multi dimensional arrays
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayWithInitializerMultipleElementsMix<[DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.PublicProperties)] TProperties> (
[DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.All)] Type typeAll)
{
@@ -356,9 +358,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
arr[0, 3].RequiresPublicMethods (); // Should warn - unknown value at this index
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArraySetElementOneElementStaticType ()
{
Type[,] arr = new Type[1, 1];
@@ -367,9 +369,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
arr[0, 1].RequiresPublicMethods (); // Should warn - unknown value at this index
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArraySetElementOneElementParameter ([DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.All)] Type type)
{
Type[,] arr = new Type[1, 1];
@@ -378,11 +380,11 @@ namespace Mono.Linker.Tests.Cases.DataFlow
arr[0, 1].RequiresPublicMethods (); // Should warn - unknown value at this index
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Below are because we do not handle Multi dimensional arrays
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArraySetElementMultipleElementsStaticType ()
{
Type[,] arr = new Type[1, 3];
@@ -396,13 +398,13 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
// Bug
- // [ExpectedWarning ("IL2087", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ // [ExpectedWarning ("IL2087", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Below are because we do not handle Multi dimensional arrays
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArraySetElementMultipleElementsMix<[DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.PublicProperties)] TProperties> (
[DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.All)] Type typeAll)
{
@@ -418,13 +420,13 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
// Bug
- // [ExpectedWarning ("IL2087", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ // [ExpectedWarning ("IL2087", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Below are because we do not handle Multi dimensional arrays
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArraySetElementAndInitializerMultipleElementsMix<[DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.PublicProperties)] TProperties> (
[DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.All)] Type typeAll)
{
@@ -438,16 +440,16 @@ namespace Mono.Linker.Tests.Cases.DataFlow
arr[0, 3].RequiresPublicMethods (); // Should warn - unknown value at this index
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestGetElementAtUnknownIndex (int i = 0)
{
Type[,] arr = new Type[,] { { typeof (TestType) } };
arr[0, i].RequiresPublicFields ();
}
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayResetStoreUnknownIndex (int i = 0)
{
Type[,] arr = new Type[,] { { typeof (TestType) } };
@@ -459,11 +461,11 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
// https://github.com/dotnet/linker/issues/2680 - analyzer doesn't reset array in this case
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayResetGetElementOnByRefArray (int i = 0)
{
Type[,] arr = new Type[,] { { typeof (TestType) } };
@@ -478,9 +480,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
static void TakesTypeByRef (ref Type type) { }
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayResetAfterCall ()
{
Type[,] arr = new Type[,] { { typeof (TestType) } };
@@ -496,9 +498,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
static void TakesTypesArray (Type[,] types) { }
// https://github.com/dotnet/linker/issues/2680
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// Multidimensional Arrays not handled -- assumed to be UnknownValue
- [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicProperties), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestArrayResetAfterAssignment ()
{
Type[,] arr = new Type[,] { { typeof (TestType) } };
@@ -512,6 +514,14 @@ namespace Mono.Linker.Tests.Cases.DataFlow
arr[0, 0].RequiresPublicFields (); // Should warn
}
+ [ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresPublicMethods), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
+ static void TestAddressOfElement ()
+ {
+ Type[,] arr = new Type[,] { { typeof (TestType) } };
+ ref Type t = ref arr[0, 0];
+ t.RequiresPublicMethods ();
+ }
+
static Type[,] _externalArray;
}
@@ -523,7 +533,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
ProducedBy = ProducedBy.Analyzer)]
// https://github.com/dotnet/linker/issues/2737
[ExpectedWarning ("IL2062", nameof (DataFlowTypeExtensions.RequiresAll),
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestNullCoalesce ()
{
Type[] arr = new Type[1];
@@ -545,7 +555,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
ProducedBy = ProducedBy.Analyzer)]
// https://github.com/dotnet/linker/issues/2746
[ExpectedWarning ("IL2072", nameof (GetUnknownType), nameof (DataFlowTypeExtensions.RequiresAll),
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void TestNullCoalescingAssignmentToEmpty ()
{
Type[] arr = new Type[1];
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/AssemblyQualifiedNameDataflow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/AssemblyQualifiedNameDataflow.cs
index 3b1e7b81f..eebc1fdd9 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/AssemblyQualifiedNameDataflow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/AssemblyQualifiedNameDataflow.cs
@@ -1,4 +1,7 @@
-using System;
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Text;
@@ -57,6 +60,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
RequireNothing (type);
}
+ // NativeAOT doesn't implement this yet: https://github.com/dotnet/runtime/issues/72833
[ExpectedWarning ("IL2105",
"Type 'System.Invalid.TypeName' was not found in the caller assembly nor in the base library. " +
"Type name strings used for dynamically accessing a type should be assembly qualified.",
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/ByRefDataflow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/ByRefDataflow.cs
index a16c455e8..72fcf8236 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/ByRefDataflow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/ByRefDataflow.cs
@@ -43,11 +43,11 @@ namespace Mono.Linker.Tests.Cases.DataFlow
[Kept]
// Trimmer and analyzer use different formats for ref parameters: https://github.com/dotnet/linker/issues/2406
- [ExpectedWarning ("IL2077", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(Type&)", ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2077", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(Type&)", ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2077", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(ref Type)", ProducedBy = ProducedBy.Analyzer)]
- [ExpectedWarning ("IL2069", nameof (s_typeWithPublicParameterlessConstructor), "parameter 'type'", nameof (MethodWithRefParameter), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2069", nameof (s_typeWithPublicParameterlessConstructor), "parameter 'type'", nameof (MethodWithRefParameter), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
// MethodWithRefParameter (ref x)
- [ExpectedWarning ("IL2077", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(Type&)", ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2077", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(Type&)", ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2077", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(ref Type)", ProducedBy = ProducedBy.Analyzer)]
public static void PassRefToField ()
{
@@ -58,7 +58,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
[Kept]
// Trimmer and analyzer use different formats for ref parameters: https://github.com/dotnet/linker/issues/2406
- [ExpectedWarning ("IL2067", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(Type&)", ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2067", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(Type&)", ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2067", nameof (ByRefDataflow) + "." + nameof (MethodWithRefParameter) + "(ref Type)", ProducedBy = ProducedBy.Analyzer)]
public static void PassRefToParameter (Type parameter)
{
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedCodeDataflow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedCodeDataflow.cs
index 6129eaaeb..6a3549c7e 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedCodeDataflow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedCodeDataflow.cs
@@ -39,9 +39,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker tracks all assignments of hoisted locals, so this produces warnings.
[ExpectedWarning ("IL2072", nameof (GetWithPublicMethods), nameof (DataFlowTypeExtensions.RequiresPublicFields), CompilerGeneratedCode = true,
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (GetWithPublicFields), nameof (DataFlowTypeExtensions.RequiresPublicMethods), CompilerGeneratedCode = true,
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static IEnumerable<int> NoFlowAcrossYieldReturn ()
{
Type t = GetWithPublicMethods ();
@@ -119,9 +119,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker tracks all assignments of hoisted locals, so this produces warnings.
[ExpectedWarning ("IL2072", nameof (GetWithPublicMethods), nameof (DataFlowTypeExtensions.RequiresPublicFields), CompilerGeneratedCode = true,
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (GetWithPublicFields), nameof (DataFlowTypeExtensions.RequiresPublicMethods), CompilerGeneratedCode = true,
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static async void NoFlowAcrossAwait ()
{
Type t = GetWithPublicMethods ();
@@ -430,7 +430,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
Type t = GetWithPublicFields ();
Action lambda =
- [ExpectedWarning ("IL2072", nameof (GetWithPublicFields), nameof (DataFlowTypeExtensions.RequiresAll))]
+ [ExpectedWarning ("IL2072", nameof (GetWithPublicFields), nameof (DataFlowTypeExtensions.RequiresAll))]
[ExpectedWarning ("IL2072", nameof (GetWithPublicMethods), nameof (DataFlowTypeExtensions.RequiresAll))]
() => t.RequiresAll ();
@@ -703,4 +703,4 @@ namespace Mono.Linker.Tests.Cases.DataFlow
public Type TypeWithPublicFields => null;
}
}
-} \ No newline at end of file
+}
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedTypes.cs b/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedTypes.cs
index 97791146d..b6958827a 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedTypes.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/CompilerGeneratedTypes.cs
@@ -334,4 +334,4 @@ namespace Mono.Linker.Tests.Cases.DataFlow
LocalFunction ();
}
}
-} \ No newline at end of file
+}
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/EmptyArrayIntrinsicsDataFlow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/EmptyArrayIntrinsicsDataFlow.cs
index 2e89e0c7e..268466a3b 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/EmptyArrayIntrinsicsDataFlow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/EmptyArrayIntrinsicsDataFlow.cs
@@ -1,4 +1,7 @@
-using System;
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/ExceptionalDataFlow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/ExceptionalDataFlow.cs
index fd1dcd474..a29dfbfe8 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/ExceptionalDataFlow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/ExceptionalDataFlow.cs
@@ -123,11 +123,11 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2073", nameof (MultipleFinallyPaths) + "()", nameof (GetWithPublicMethods) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2073", nameof (MultipleFinallyPaths) + "()", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2073", nameof (MultipleFinallyPaths) + "()", nameof (GetWithPublicProperties) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[return: DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.All)]
public static Type MultipleFinallyPaths ()
{
@@ -325,25 +325,25 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll3) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll4) + "(Type)", nameof (GetWithPublicProperties) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll5) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll5) + "(Type)", nameof (GetWithPublicProperties) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll7) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll7) + "(Type)", nameof (GetWithPublicProperties) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll7) + "(Type)", nameof (GetWithPublicEvents) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicProperties) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicEvents) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void TryFlowsToMultipleCatchAndFinally ()
{
@@ -487,7 +487,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicFields) + "()")]
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicMethods) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void CatchInTry ()
{
try {
@@ -512,7 +512,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll1) + "(Type)", nameof (GetWithPublicMethods) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void CatchInTryWithFinally ()
{
Type t = GetWithPublicConstructors ();
@@ -542,7 +542,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void TestCatchesHaveSeparateState ()
{
Type t = GetWithPublicMethods ();
@@ -713,7 +713,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll3) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void NestedFinally ()
{
Type t = GetWithPublicMethods ();
@@ -743,7 +743,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll3) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void NestedFinallyWithPredecessor ()
{
Type t = GetWithPublicMethods ();
@@ -784,7 +784,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicMethods) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void ExceptionFilterStateChange ()
{
Type t = GetWithPublicMethods ();
@@ -823,11 +823,11 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicMethods) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll2) + "(Type)", nameof (GetWithPublicMethods) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
[ExpectedWarning ("IL2072", nameof (RequireAll2) + "(Type)", nameof (GetWithPublicFields) + "()",
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void ExceptionMultipleFilters ()
{
Type t = GetWithPublicMethods ();
@@ -859,7 +859,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Linker merges branches going forward.
[ExpectedWarning ("IL2072", nameof (RequireAll) + "(Type)", nameof (GetWithPublicMethods),
- ProducedBy = ProducedBy.Trimmer)]
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
public static void ExceptionFilterWithBranch ()
{
Type t = GetWithPublicMethods ();
@@ -989,4 +989,4 @@ namespace Mono.Linker.Tests.Cases.DataFlow
{
}
}
-} \ No newline at end of file
+}
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/FieldDataFlow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/FieldDataFlow.cs
index 0e5dadff4..632959a6d 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/FieldDataFlow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/FieldDataFlow.cs
@@ -202,7 +202,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
static AccessReturnedInstanceField GetInstance ([DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.All)] Type unused) => null;
[ExpectedWarning ("IL2072", nameof (GetUnknownType), nameof (GetInstance),
- ProducedBy = ProducedBy.Trimmer)] // https://github.com/dotnet/linker/issues/2832
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)] // https://github.com/dotnet/linker/issues/2832
[ExpectedWarning ("IL2077", nameof (field), nameof (DataFlowTypeExtensions.RequiresAll))]
static void TestRead ()
{
@@ -210,7 +210,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
[ExpectedWarning ("IL2072", nameof (GetUnknownType), nameof (GetInstance),
- ProducedBy = ProducedBy.Trimmer)] // https://github.com/dotnet/linker/issues/2832
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)] // https://github.com/dotnet/linker/issues/2832
[ExpectedWarning ("IL2074", nameof (GetUnknownType), nameof (field))]
static void TestWrite ()
{
@@ -218,7 +218,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
[ExpectedWarning ("IL2072", nameof (GetUnknownType), nameof (GetInstance),
- ProducedBy = ProducedBy.Trimmer)] // https://github.com/dotnet/linker/issues/2832
+ ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)] // https://github.com/dotnet/linker/issues/2832
[ExpectedWarning ("IL2074", nameof (GetUnknownType), nameof (field))]
static void TestNullCoalescingAssignment ()
{
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/MethodByRefReturnDataFlow.cs b/test/Mono.Linker.Tests.Cases/DataFlow/MethodByRefReturnDataFlow.cs
index 7d8d55022..2766021fc 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/MethodByRefReturnDataFlow.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/MethodByRefReturnDataFlow.cs
@@ -38,7 +38,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Correct behavior in the linker, but needs to be added in analyzer
// Bug link: https://github.com/dotnet/linker/issues/2158
- [ExpectedWarning ("IL2026", "Message for --TestType.Requires--", ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2026", "Message for --TestType.Requires--", ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void AssignToAnnotatedTypeReference ()
{
ref Type typeShouldHaveAllMethods = ref ReturnAnnotatedTypeReferenceAsAnnotated ();
@@ -48,7 +48,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
// Same as above for IL analysis, but this looks different to the Roslyn analyzer.
// https://github.com/dotnet/linker/issues/2158
- [ExpectedWarning ("IL2026", "Message for --TestType.Requires--", ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2026", "Message for --TestType.Requires--", ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void AssignDirectlyToAnnotatedTypeReference ()
{
ReturnAnnotatedTypeReferenceAsAnnotated () = typeof (TestTypeWithRequires);
@@ -56,7 +56,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
// https://github.com/dotnet/linker/issues/2158
- [ExpectedWarning ("IL2073", nameof (GetWithPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2073", nameof (GetWithPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void AssignToCapturedAnnotatedTypeReference ()
{
// In this testcase, the Roslyn analyzer sees an assignment to a flow-capture reference.
@@ -64,7 +64,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
[ExpectedWarning ("IL2072", nameof (GetWithPublicMethods), nameof (ReturnAnnotatedTypeWithRequirements))]
- [ExpectedWarning ("IL2073", nameof (ReturnAnnotatedTypeWithRequirements), nameof (GetWithPublicFields), ProducedBy = ProducedBy.Trimmer)]
+ [ExpectedWarning ("IL2073", nameof (ReturnAnnotatedTypeWithRequirements), nameof (GetWithPublicFields), ProducedBy = ProducedBy.Trimmer | ProducedBy.NativeAot)]
static void AssignToAnnotatedTypeReferenceWithRequirements ()
{
ReturnAnnotatedTypeWithRequirements (GetWithPublicMethods ()) = GetWithPublicFields ();
diff --git a/test/Mono.Linker.Tests.Cases/DataFlow/UnresolvedMembers.cs b/test/Mono.Linker.Tests.Cases/DataFlow/UnresolvedMembers.cs
index 3891ca25b..400dd9af0 100644
--- a/test/Mono.Linker.Tests.Cases/DataFlow/UnresolvedMembers.cs
+++ b/test/Mono.Linker.Tests.Cases/DataFlow/UnresolvedMembers.cs
@@ -12,6 +12,10 @@ using Mono.Linker.Tests.Cases.Expectations.Metadata;
namespace Mono.Linker.Tests.Cases.DataFlow
{
+ // NativeAOT will not compile a method with unresolved types in it - it will instead replace it with a throwing method body
+ // So it doesn't produce any of these warnings - which is also correct, because the code at runtime would never get there
+ // it would fail to JIT/run anyway.
+
[SkipPeVerify]
[SetupLinkerArgument ("--skip-unresolved", "true")]
[SetupCompileBefore ("UnresolvedLibrary.dll", new[] { "Dependencies/UnresolvedLibrary.cs" }, removeFromLinkerInput: true)]
@@ -43,9 +47,9 @@ namespace Mono.Linker.Tests.Cases.DataFlow
{ }
[Kept]
- [ExpectedWarning ("IL2066", "TypeWithUnresolvedGenericArgument")] // Local variable type
- [ExpectedWarning ("IL2066", "TypeWithUnresolvedGenericArgument")] // Called method declaring type
- [ExpectedWarning ("IL2066", nameof (MethodWithUnresolvedGenericArgument))]
+ [ExpectedWarning ("IL2066", "TypeWithUnresolvedGenericArgument", ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)] // Local variable type
+ [ExpectedWarning ("IL2066", "TypeWithUnresolvedGenericArgument", ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)] // Called method declaring type
+ [ExpectedWarning ("IL2066", nameof (MethodWithUnresolvedGenericArgument), ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)]
static void UnresolvedGenericArgument ()
{
var a = new TypeWithUnresolvedGenericArgument<Dependencies.UnresolvedType> ();
@@ -75,7 +79,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
[Kept]
- [ExpectedWarning ("IL2062", nameof (AttributeWithRequirements))]
+ [ExpectedWarning ("IL2062", nameof (AttributeWithRequirements), ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)]
[KeptAttributeAttribute (typeof (AttributeWithRequirements))]
[AttributeWithRequirements (typeof (Dependencies.UnresolvedType))]
static void UnresolvedAttributeArgument ()
@@ -83,7 +87,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
[Kept]
- [ExpectedWarning ("IL2062", nameof (AttributeWithRequirements.PropertyWithRequirements))]
+ [ExpectedWarning ("IL2062", nameof (AttributeWithRequirements.PropertyWithRequirements), ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)]
[KeptAttributeAttribute (typeof (AttributeWithRequirements))]
[AttributeWithRequirements (typeof (EmptyType), PropertyWithRequirements = typeof (Dependencies.UnresolvedType))]
static void UnresolvedAttributePropertyValue ()
@@ -91,7 +95,7 @@ namespace Mono.Linker.Tests.Cases.DataFlow
}
[Kept]
- [ExpectedWarning ("IL2064", nameof (AttributeWithRequirements.FieldWithRequirements))]
+ [ExpectedWarning ("IL2064", nameof (AttributeWithRequirements.FieldWithRequirements), ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)]
[KeptAttributeAttribute (typeof (AttributeWithRequirements))]
[AttributeWithRequirements (typeof (EmptyType), FieldWithRequirements = typeof (Dependencies.UnresolvedType))]
static void UnresolvedAttributeFieldValue ()
@@ -102,14 +106,14 @@ namespace Mono.Linker.Tests.Cases.DataFlow
static Dependencies.UnresolvedType _unresolvedField;
[Kept]
- [ExpectedWarning ("IL2072", nameof (Object.GetType))]
+ [ExpectedWarning ("IL2072", nameof (Object.GetType), ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)]
static void UnresolvedObjectGetType ()
{
RequirePublicMethods (_unresolvedField.GetType ());
}
[Kept]
- [ExpectedWarning ("IL2072", nameof (Object.GetType))]
+ [ExpectedWarning ("IL2072", nameof (Object.GetType), ProducedBy = ProducedBy.Trimmer | ProducedBy.Analyzer)]
static void UnresolvedMethodParameter ()
{
RequirePublicMethods (typeof (Dependencies.UnresolvedType));