Skip to content

Commit ce4d2dc

Browse files
RexJaeschkeBillWagnerjskeet
authored
remove prohibition of unmanaged constructed types (#604)
* remove prohibition of unmanaged constructed types * fix links * remove dup from rebase. * found one change in the old reflog This is the only change I could find. * Update standard/types.md * Update standard/types.md --------- Co-authored-by: Bill Wagner <[email protected]> Co-authored-by: Jon Skeet <[email protected]>
1 parent e0850c6 commit ce4d2dc

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

standard/types.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -715,12 +715,13 @@ unmanaged_type
715715
;
716716
```
717717

718-
An *unmanaged_type* is any type that isn’t a *reference_type*, a *type_parameter*, or a constructed type, and contains no instance fields whose type is not an *unmanaged_type*. In other words, an *unmanaged_type* is one of the following:
718+
An *unmanaged_type* is any type that is neither a *reference_type* nor a *type_parameter* that is not constrained to be unmanaged, and contains no instance fields whose type is not an *unmanaged_type*. In other words, an *unmanaged_type* is one of the following:
719719

720720
- `sbyte`, `byte`, `short`, `ushort`, `int`, `uint`, `long`, `ulong`, `char`, `float`, `double`, `decimal`, or `bool`.
721721
- Any *enum_type*.
722-
- Any user-defined *struct_type* that is not a constructed type and contains instance fields of *unmanaged_type*s only.
723-
- In unsafe code ([§23.2](unsafe-code.md#232-unsafe-contexts)), any *pointer_type* ([§23.3](unsafe-code.md#233-pointer-types)).
722+
- Any user-defined *struct_type* that contains instance fields of *unmanaged_type*s only.
723+
- Any type parameter which is constrained to be unmanaged.
724+
- Any *pointer_type* ([§23.3](unsafe-code.md#233-pointer-types)).
724725

725726
## 8.9 Reference Types and nullability
726727

0 commit comments

Comments
 (0)