-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Expand file tree
/
Copy pathConstaintsTestExtensions.cs
More file actions
118 lines (100 loc) · 3.36 KB
/
Copy pathConstaintsTestExtensions.cs
File metadata and controls
118 lines (100 loc) · 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace Microsoft.Extensions.Logging.Generators.Tests.TestClasses
{
using ConstraintInAnotherNamespace;
namespace UsesConstraintInAnotherNamespace
{
public partial class MessagePrinter<T>
where T : Message
{
public void Print(ILogger logger, T message)
{
Log.Message(logger, message.Text);
}
internal static partial class Log
{
[LoggerMessage(EventId = 1, Level = LogLevel.Information, Message = "The message is {Text}.")]
internal static partial void Message(ILogger logger, string? text);
}
}
public partial class MessagePrinterHasConstraintOnLogClassAndLogMethod<T>
where T : Message
{
public void Print(ILogger logger, T message)
{
Log<Message>.Message(logger, message);
}
internal static partial class Log<U> where U : Message
{
[LoggerMessage(EventId = 1, Level = LogLevel.Information, Message = "The message is {Text}.")]
internal static partial void Message(ILogger logger, U text);
}
}
}
internal static partial class ConstraintsTestExtensions<T>
where T : class
{
[LoggerMessage(EventId = 0, Level = LogLevel.Debug, Message = "M0{p0}")]
public static partial void M0(ILogger logger, int p0);
public static void Foo(T dummy)
{
}
}
internal static partial class ConstraintsTestExtensions1<T>
where T : struct
{
[LoggerMessage(EventId = 0, Level = LogLevel.Debug, Message = "M0{p0}")]
public static partial void M0(ILogger logger, int p0);
public static void Foo(T dummy)
{
}
}
internal static partial class ConstraintsTestExtensions2<T>
where T : unmanaged
{
[LoggerMessage(EventId = 0, Level = LogLevel.Debug, Message = "M0{p0}")]
public static partial void M0(ILogger logger, int p0);
public static void Foo(T dummy)
{
}
}
internal static partial class ConstraintsTestExtensions3<T>
where T : new()
{
[LoggerMessage(EventId = 0, Level = LogLevel.Debug, Message = "M0{p0}")]
public static partial void M0(ILogger logger, int p0);
public static void Foo(T dummy)
{
}
}
internal static partial class ConstraintsTestExtensions4<T>
where T : System.Attribute
{
[LoggerMessage(EventId = 0, Level = LogLevel.Debug, Message = "M0{p0}")]
public static partial void M0(ILogger logger, int p0);
public static void Foo(T dummy)
{
}
}
internal static partial class ConstraintsTestExtensions5<T>
where T : notnull
{
[LoggerMessage(EventId = 0, Level = LogLevel.Debug, Message = "M0{p0}")]
public static partial void M0(ILogger logger, int p0);
public static void Foo(T dummy)
{
}
}
}
namespace ConstraintInAnotherNamespace
{
public class Message
{
public string? Text { get; set; }
public override string ToString()
{
return $"`{Text}`";
}
}
}