272 references to KnownManagedType
Microsoft.Interop.JavaScript.JSImportGenerator (272)
JSExportGenerator.cs (1)
160
new JSMarshallingInfo(NoMarshallingInfo.Instance, new JSSimpleTypeInfo(
KnownManagedType
.Exception, Constants.ExceptionGlobal))
JSGeneratorFactory.cs (243)
77
case { TypeInfo: JSTaskTypeInfo { ResultTypeInfo.KnownType:
KnownManagedType
.Void } task }:
91
private static ResolvedGeneratorAndType Create(TypePositionInfo info, StubCodeContext context, bool isToJs,
KnownManagedType
marshaledType,
KnownManagedType
[] argumentTypes, JSTypeFlags jsType, SequenceEqualImmutableArray<JSTypeFlags>? jsTypeArguments)
96
(
KnownManagedType
.Void, JSTypeFlags.Void, _, _) => resolved(new Forwarder().Bind(info, context), MarshalerType.Void),
97
(
KnownManagedType
.Void, JSTypeFlags.None or JSTypeFlags.Discard, _, _) => resolved(new Forwarder().Bind(info, context), MarshalerType.Discard),
98
(
KnownManagedType
.Void, JSTypeFlags.DiscardNoWait, _, _) => resolved(new Forwarder().Bind(info, context), MarshalerType.DiscardNoWait),
101
(
KnownManagedType
.Void, JSTypeFlags.Missing, _, _) => resolved(new Forwarder().Bind(info, context), MarshalerType.Discard),
104
(
KnownManagedType
.Boolean, JSTypeFlags.Boolean, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Boolean), MarshalerType.Boolean),
105
(
KnownManagedType
.Byte, JSTypeFlags.Number, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Byte), MarshalerType.Byte),
106
(
KnownManagedType
.Char, JSTypeFlags.String, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Char), MarshalerType.Char),
107
(
KnownManagedType
.Int16, JSTypeFlags.Number, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int16), MarshalerType.Int16),
108
(
KnownManagedType
.Int32, JSTypeFlags.Number, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int32), MarshalerType.Int32),
109
(
KnownManagedType
.Int64, JSTypeFlags.Number, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int52), MarshalerType.Int52),
110
(
KnownManagedType
.Int64, JSTypeFlags.BigInt, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.BigInt64), MarshalerType.BigInt64),
111
(
KnownManagedType
.Single, JSTypeFlags.Number, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Single), MarshalerType.Single),
112
(
KnownManagedType
.Double, JSTypeFlags.Number, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Double), MarshalerType.Double),
113
(
KnownManagedType
.IntPtr, JSTypeFlags.Number, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.IntPtr), MarshalerType.IntPtr),
114
(
KnownManagedType
.DateTime, JSTypeFlags.Date, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.DateTime), MarshalerType.DateTime),
115
(
KnownManagedType
.DateTimeOffset, JSTypeFlags.Date, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.DateTimeOffset), MarshalerType.DateTimeOffset),
116
(
KnownManagedType
.Exception, JSTypeFlags.Error, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Exception), MarshalerType.Exception),
117
(
KnownManagedType
.JSObject, JSTypeFlags.Object, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.JSObject), MarshalerType.JSObject),
118
(
KnownManagedType
.String, JSTypeFlags.String, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.String), MarshalerType.String),
119
(
KnownManagedType
.Object, JSTypeFlags.Any, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Object), MarshalerType.Object),
122
(
KnownManagedType
.Boolean, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Boolean), MarshalerType.Boolean),
123
(
KnownManagedType
.Byte, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Byte), MarshalerType.Byte),
124
(
KnownManagedType
.Char, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Char), MarshalerType.Char),
125
(
KnownManagedType
.Int16, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int16), MarshalerType.Int16),
126
(
KnownManagedType
.Int32, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int32), MarshalerType.Int32),
127
(
KnownManagedType
.Single, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Single), MarshalerType.Single),
128
(
KnownManagedType
.Double, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Double), MarshalerType.Double),
129
(
KnownManagedType
.IntPtr, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.IntPtr), MarshalerType.IntPtr),
130
(
KnownManagedType
.Exception, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Exception), MarshalerType.Exception),
131
(
KnownManagedType
.JSObject, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.JSObject), MarshalerType.JSObject),
132
(
KnownManagedType
.String, JSTypeFlags.Missing, _, _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.String), MarshalerType.String),
135
(
KnownManagedType
.Int64, JSTypeFlags.Missing, _, _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
136
(
KnownManagedType
.DateTime, JSTypeFlags.Missing, _, _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
137
(
KnownManagedType
.DateTimeOffset, JSTypeFlags.Missing, _, _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
138
(
KnownManagedType
.Object, JSTypeFlags.Missing, _, _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
141
(
KnownManagedType
.Nullable, JSTypeFlags.Boolean, [
KnownManagedType
.Boolean], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Boolean), MarshalerType.Nullable, [MarshalerType.Boolean]),
142
(
KnownManagedType
.Nullable, JSTypeFlags.Number, [
KnownManagedType
.Byte], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Byte), MarshalerType.Nullable, [MarshalerType.Byte]),
143
(
KnownManagedType
.Nullable, JSTypeFlags.String, [
KnownManagedType
.Char], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Char), MarshalerType.Nullable, [MarshalerType.Char]),
144
(
KnownManagedType
.Nullable, JSTypeFlags.Number, [
KnownManagedType
.Int16], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int16), MarshalerType.Nullable, [MarshalerType.Int16]),
145
(
KnownManagedType
.Nullable, JSTypeFlags.Number, [
KnownManagedType
.Int32], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int32), MarshalerType.Nullable, [MarshalerType.Int32]),
146
(
KnownManagedType
.Nullable, JSTypeFlags.Number, [
KnownManagedType
.Int64], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int52), MarshalerType.Nullable, [MarshalerType.Int52]),
147
(
KnownManagedType
.Nullable, JSTypeFlags.BigInt, [
KnownManagedType
.Int64], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.BigInt64), MarshalerType.Nullable, [MarshalerType.BigInt64]),
148
(
KnownManagedType
.Nullable, JSTypeFlags.Number, [
KnownManagedType
.Single], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Single), MarshalerType.Nullable, [MarshalerType.Single]),
149
(
KnownManagedType
.Nullable, JSTypeFlags.Number, [
KnownManagedType
.Double], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Double), MarshalerType.Nullable, [MarshalerType.Double]),
150
(
KnownManagedType
.Nullable, JSTypeFlags.Number, [
KnownManagedType
.IntPtr], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.IntPtr), MarshalerType.Nullable, [MarshalerType.IntPtr]),
151
(
KnownManagedType
.Nullable, JSTypeFlags.Date, [
KnownManagedType
.DateTime], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.DateTime), MarshalerType.Nullable, [MarshalerType.DateTime]),
152
(
KnownManagedType
.Nullable, JSTypeFlags.Date, [
KnownManagedType
.DateTimeOffset], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.DateTimeOffset), MarshalerType.Nullable, [MarshalerType.DateTimeOffset]),
155
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Boolean], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Boolean), MarshalerType.Nullable, [MarshalerType.Boolean]),
156
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Byte], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Byte), MarshalerType.Nullable, [MarshalerType.Byte]),
157
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Char], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Char), MarshalerType.Nullable, [MarshalerType.Char]),
158
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Int16], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int16), MarshalerType.Nullable, [MarshalerType.Int16]),
159
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Int32], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Int32), MarshalerType.Nullable, [MarshalerType.Int32]),
160
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Single], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Single), MarshalerType.Nullable, [MarshalerType.Single]),
161
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Double], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Double), MarshalerType.Nullable, [MarshalerType.Double]),
162
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.IntPtr], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.IntPtr), MarshalerType.Nullable, [MarshalerType.IntPtr]),
165
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.Int64], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
166
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.DateTime], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
167
(
KnownManagedType
.Nullable, JSTypeFlags.Missing, [
KnownManagedType
.DateTimeOffset], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
169
(
KnownManagedType
.Nullable, _, _, _) => failWithReason(SR.Format(SR.TypeNotSupportedName, info.ManagedType.FullTypeName)),
173
(
KnownManagedType
.Task, JSTypeFlags.Promise, [], [JSTypeFlags.Void]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Void), MarshalerType.Task, []),
174
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Boolean], [JSTypeFlags.Boolean]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Boolean), MarshalerType.Task, [MarshalerType.Boolean]),
175
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Byte], [JSTypeFlags.Number]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Byte), MarshalerType.Task, [MarshalerType.Byte]),
176
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Char], [JSTypeFlags.String]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Char), MarshalerType.Task, [MarshalerType.Char]),
177
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Int16], [JSTypeFlags.Number]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Int16), MarshalerType.Task, [MarshalerType.Int16]),
178
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Int32], [JSTypeFlags.Number]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Int32), MarshalerType.Task, [MarshalerType.Int32]),
179
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Int64], [JSTypeFlags.Number]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Int52), MarshalerType.Task, [MarshalerType.Int52]),
180
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Int64], [JSTypeFlags.BigInt]) => resolved(new TaskJSGenerator(info, context, MarshalerType.BigInt64), MarshalerType.Task, [MarshalerType.BigInt64]),
181
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Single], [JSTypeFlags.Number]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Single), MarshalerType.Task, [MarshalerType.Single]),
182
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Double], [JSTypeFlags.Number]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Double), MarshalerType.Task, [MarshalerType.Double]),
183
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.IntPtr], [JSTypeFlags.Number]) => resolved(new TaskJSGenerator(info, context, MarshalerType.IntPtr), MarshalerType.Task, [MarshalerType.IntPtr]),
184
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.DateTime], [JSTypeFlags.Date]) => resolved(new TaskJSGenerator(info, context, MarshalerType.DateTime), MarshalerType.Task, [MarshalerType.DateTime]),
185
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.DateTimeOffset], [JSTypeFlags.Date]) => resolved(new TaskJSGenerator(info, context, MarshalerType.DateTimeOffset), MarshalerType.Task, [MarshalerType.DateTimeOffset]),
186
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Exception], [JSTypeFlags.Error]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Exception), MarshalerType.Task, [MarshalerType.Exception]),
187
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.JSObject], [JSTypeFlags.Object]) => resolved(new TaskJSGenerator(info, context, MarshalerType.JSObject), MarshalerType.Task, [MarshalerType.JSObject]),
188
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.String], [JSTypeFlags.String]) => resolved(new TaskJSGenerator(info, context, MarshalerType.String), MarshalerType.Task, [MarshalerType.String]),
189
(
KnownManagedType
.Task, JSTypeFlags.Promise, [
KnownManagedType
.Object], [JSTypeFlags.Any]) => resolved(new TaskJSGenerator(info, context, MarshalerType.Object), MarshalerType.Task, [MarshalerType.Object]),
192
(
KnownManagedType
.Task, JSTypeFlags.Missing, [], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Void), MarshalerType.Task, []),
193
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Boolean], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Boolean), MarshalerType.Task, [MarshalerType.Boolean]),
194
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Byte], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Byte), MarshalerType.Task, [MarshalerType.Byte]),
195
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Char], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Char), MarshalerType.Task, [MarshalerType.Char]),
196
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Int16], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Int16), MarshalerType.Task, [MarshalerType.Int16]),
197
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Int32], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Int32), MarshalerType.Task, [MarshalerType.Int32]),
198
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Single], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Single), MarshalerType.Task, [MarshalerType.Single]),
199
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Double], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Double), MarshalerType.Task, [MarshalerType.Double]),
200
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.IntPtr], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.IntPtr), MarshalerType.Task, [MarshalerType.IntPtr]),
201
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Exception], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.Exception), MarshalerType.Task, [MarshalerType.Exception]),
202
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.JSObject], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.JSObject), MarshalerType.Task, [MarshalerType.JSObject]),
203
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.String], _) => resolved(new TaskJSGenerator(info, context, MarshalerType.String), MarshalerType.Task, [MarshalerType.String]),
206
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Int64], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
207
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.DateTime], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
208
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.DateTimeOffset], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
209
(
KnownManagedType
.Task, JSTypeFlags.Missing, [
KnownManagedType
.Object], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
211
(
KnownManagedType
.Task, JSTypeFlags.Promise, _, [_]) => failWithReason(SR.Format(SR.TypeNotSupportedName, info.ManagedType.FullTypeName)),
214
(
KnownManagedType
.Array, JSTypeFlags.Array, [
KnownManagedType
.Byte], [JSTypeFlags.Number]) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Byte]),
215
(
KnownManagedType
.Array, JSTypeFlags.Array, [
KnownManagedType
.String], [JSTypeFlags.String]) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.String]),
216
(
KnownManagedType
.Array, JSTypeFlags.Array, [
KnownManagedType
.Double], [JSTypeFlags.Number]) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Double]),
217
(
KnownManagedType
.Array, JSTypeFlags.Array, [
KnownManagedType
.Single], [JSTypeFlags.Number]) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Single]),
218
(
KnownManagedType
.Array, JSTypeFlags.Array, [
KnownManagedType
.Int32], [JSTypeFlags.Number]) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Int32]),
219
(
KnownManagedType
.Array, JSTypeFlags.Array, [
KnownManagedType
.JSObject], [JSTypeFlags.Object]) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.JSObject]),
220
(
KnownManagedType
.Array, JSTypeFlags.Array, [
KnownManagedType
.Object], [JSTypeFlags.Any]) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Object]),
223
(
KnownManagedType
.Array, JSTypeFlags.Missing, [
KnownManagedType
.Byte], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Byte]),
224
(
KnownManagedType
.Array, JSTypeFlags.Missing, [
KnownManagedType
.String], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.String]),
225
(
KnownManagedType
.Array, JSTypeFlags.Missing, [
KnownManagedType
.Double], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Double]),
226
(
KnownManagedType
.Array, JSTypeFlags.Missing, [
KnownManagedType
.Single], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Single]),
227
(
KnownManagedType
.Array, JSTypeFlags.Missing, [
KnownManagedType
.Int32], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.Int32]),
228
(
KnownManagedType
.Array, JSTypeFlags.Missing, [
KnownManagedType
.JSObject], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Array), MarshalerType.Array, [MarshalerType.JSObject]),
230
(
KnownManagedType
.Array, JSTypeFlags.Array, _, [_]) => failWithReason(SR.Format(SR.TypeNotSupportedName, info.ManagedType.FullTypeName)),
233
(
KnownManagedType
.Array, JSTypeFlags.Missing, [
KnownManagedType
.Object], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
236
(
KnownManagedType
.Span, JSTypeFlags.MemoryView, _, [_]) => failWithReason(null!),
237
(
KnownManagedType
.Span, JSTypeFlags.MemoryView, [
KnownManagedType
.Byte], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Span), MarshalerType.Span, [MarshalerType.Byte]),
238
(
KnownManagedType
.Span, JSTypeFlags.MemoryView, [
KnownManagedType
.Int32], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Span), MarshalerType.Span, [MarshalerType.Int32]),
239
(
KnownManagedType
.Span, JSTypeFlags.MemoryView, [
KnownManagedType
.Double], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Span), MarshalerType.Span, [MarshalerType.Double]),
240
(
KnownManagedType
.Span, JSTypeFlags.MemoryView, [
KnownManagedType
.Single], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.Span), MarshalerType.Span, [MarshalerType.Single]),
242
(
KnownManagedType
.Span, JSTypeFlags.MemoryView, _, _) => failWithReason(SR.Format(SR.TypeNotSupportedName, info.ManagedType.FullTypeName)),
245
(
KnownManagedType
.Span, JSTypeFlags.Missing, [
KnownManagedType
.Byte], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
246
(
KnownManagedType
.Span, JSTypeFlags.Missing, [
KnownManagedType
.Int32], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
247
(
KnownManagedType
.Span, JSTypeFlags.Missing, [
KnownManagedType
.Double], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
248
(
KnownManagedType
.Span, JSTypeFlags.Missing, [
KnownManagedType
.Single], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
251
(
KnownManagedType
.ArraySegment, JSTypeFlags.MemoryView, _, [_]) => failWithReason(null!),
252
(
KnownManagedType
.ArraySegment, JSTypeFlags.MemoryView, [
KnownManagedType
.Byte], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.ArraySegment), MarshalerType.ArraySegment, [MarshalerType.Byte]),
253
(
KnownManagedType
.ArraySegment, JSTypeFlags.MemoryView, [
KnownManagedType
.Int32], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.ArraySegment), MarshalerType.ArraySegment, [MarshalerType.Int32]),
254
(
KnownManagedType
.ArraySegment, JSTypeFlags.MemoryView, [
KnownManagedType
.Double], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.ArraySegment), MarshalerType.ArraySegment, [MarshalerType.Double]),
255
(
KnownManagedType
.ArraySegment, JSTypeFlags.MemoryView, [
KnownManagedType
.Single], _) => resolved(new PrimitiveJSGenerator(info, context, MarshalerType.ArraySegment), MarshalerType.ArraySegment, [MarshalerType.Single]),
257
(
KnownManagedType
.ArraySegment, JSTypeFlags.MemoryView, _, _) => failWithReason(SR.Format(SR.TypeNotSupportedName, info.ManagedType.FullTypeName)),
260
(
KnownManagedType
.ArraySegment, JSTypeFlags.Missing, [
KnownManagedType
.Byte], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
261
(
KnownManagedType
.ArraySegment, JSTypeFlags.Missing, [
KnownManagedType
.Int32], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
262
(
KnownManagedType
.ArraySegment, JSTypeFlags.Missing, [
KnownManagedType
.Double], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
263
(
KnownManagedType
.ArraySegment, JSTypeFlags.Missing, [
KnownManagedType
.Single], _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
266
(
KnownManagedType
.Function or
KnownManagedType
.Action, JSTypeFlags.Function, var argTypes, { } argJSTypes) when argTypes.Length != argJSTypes.Length
269
(
KnownManagedType
.Function or
KnownManagedType
.Action, JSTypeFlags.Function or JSTypeFlags.Missing, var argTypes, _) when FindFirstInvalidArgType(argTypes) is
KnownManagedType
invalidArgType
272
(
KnownManagedType
.Function or
KnownManagedType
.Action, JSTypeFlags.Function, var argTypes, { } argJSTypes) => ResolveCallback(marshaledType, argTypes, argJSTypes),
275
(
KnownManagedType
.Function or
KnownManagedType
.Action, JSTypeFlags.Missing, _, _) => failWithReason(SR.Format(SR.UseJSMarshalAsAttribute, info.ManagedType.FullTypeName)),
278
(not
KnownManagedType
.Void, JSTypeFlags.Discard, _, _) => failWithReason(SR.DiscardOnlyVoid),
279
(not
KnownManagedType
.Void, JSTypeFlags.DiscardNoWait, _, _) => failWithReason(SR.DiscardNoWaitOnlyVoid),
285
KnownManagedType
? FindFirstInvalidArgType(
KnownManagedType
[] argumentTypes)
287
foreach (
KnownManagedType
type in argumentTypes)
289
if (type is
KnownManagedType
.Array
290
or
KnownManagedType
.Span
291
or
KnownManagedType
.ArraySegment
292
or
KnownManagedType
.Task
293
or
KnownManagedType
.Function
294
or
KnownManagedType
.Action
295
or
KnownManagedType
.Unknown
304
ResolvedGeneratorAndType ResolveCallback(
KnownManagedType
managedType,
KnownManagedType
[] argTypes, SequenceEqualImmutableArray<JSTypeFlags> argJSTypes)
309
var isReturn = managedType ==
KnownManagedType
.Function && i == argJSTypes.Length - 1;
311
var gen = Create(info, context, isToJs ^ (!isReturn), argTypes[i], Array.Empty<
KnownManagedType
>(), argJSTypes[i], new(ImmutableArray<JSTypeFlags>.Empty));
314
var maxArgs = managedType ==
KnownManagedType
.Action ? 3 : 4;
321
new FuncJSGenerator(info, context, managedType ==
KnownManagedType
.Action, argsMarshallerTypes),
322
managedType ==
KnownManagedType
.Action ? MarshalerType.Action : MarshalerType.Function,
JSManagedTypeInfo.cs (27)
10
internal abstract record JSTypeInfo(
KnownManagedType
KnownType)
18
return new JSSimpleTypeInfo(
KnownManagedType
.Void, "void");
20
return new JSSimpleTypeInfo(
KnownManagedType
.Boolean, "bool");
22
return new JSSimpleTypeInfo(
KnownManagedType
.Byte, "byte");
24
return new JSSimpleTypeInfo(
KnownManagedType
.Char, "char");
26
return new JSSimpleTypeInfo(
KnownManagedType
.Int16, "short");
28
return new JSSimpleTypeInfo(
KnownManagedType
.Int32, "int");
30
return new JSSimpleTypeInfo(
KnownManagedType
.Int64, "long");
32
return new JSSimpleTypeInfo(
KnownManagedType
.Single, "float");
34
return new JSSimpleTypeInfo(
KnownManagedType
.Double, "double");
37
return new JSSimpleTypeInfo(
KnownManagedType
.IntPtr, "nint");
39
return new JSSimpleTypeInfo(
KnownManagedType
.DateTime, fullTypeName);
41
return new JSSimpleTypeInfo(
KnownManagedType
.DateTimeOffset, fullTypeName);
43
return new JSSimpleTypeInfo(
KnownManagedType
.Exception, fullTypeName);
45
return new JSSimpleTypeInfo(
KnownManagedType
.Object, "object");
47
return new JSSimpleTypeInfo(
KnownManagedType
.String, "string");
49
return new JSSimpleTypeInfo(
KnownManagedType
.JSObject, fullTypeName);
69
return new JSTaskTypeInfo(new JSSimpleTypeInfo(
KnownManagedType
.Void, "void"));
125
internal sealed record JSInvalidTypeInfo() : JSSimpleTypeInfo(
KnownManagedType
.None, "");
127
internal record JSSimpleTypeInfo(
KnownManagedType
KnownType, string FullTypeName) : JSTypeInfo(KnownType);
129
internal sealed record JSArrayTypeInfo(JSSimpleTypeInfo ElementTypeInfo) : JSTypeInfo(
KnownManagedType
.Array);
131
internal sealed record JSSpanTypeInfo(JSSimpleTypeInfo ElementTypeInfo) : JSTypeInfo(
KnownManagedType
.Span);
133
internal sealed record JSArraySegmentTypeInfo(JSSimpleTypeInfo ElementTypeInfo) : JSTypeInfo(
KnownManagedType
.ArraySegment);
135
internal sealed record JSTaskTypeInfo(JSSimpleTypeInfo ResultTypeInfo) : JSTypeInfo(
KnownManagedType
.Task);
137
internal sealed record JSNullableTypeInfo(JSSimpleTypeInfo ResultTypeInfo) : JSTypeInfo(
KnownManagedType
.Nullable);
139
internal sealed record JSFunctionTypeInfo(bool IsAction, JSSimpleTypeInfo[] ArgsTypeInfo) : JSTypeInfo(IsAction ?
KnownManagedType
.Action :
KnownManagedType
.Function)
Marshaling\TaskJSGenerator.cs (1)
37
if (taskType.ResultTypeInfo.KnownType !=
KnownManagedType
.Void)