提交 a87b0dda 编写于 作者: V vsadov

CR feedback

上级 96549455
......@@ -384,7 +384,7 @@ private BoundStatement UpdateStatement(BoundSpillSequenceBuilder builder, BoundS
// - `RefKind.In` (specified with no modifiers and matched an 'In' parameter)
//
// It is allowed to spill ordinary `In` arguments by value if reference-preserving spilling is not possible.
// The "strct" ones do not permit implicit copying, so the same situation should result in an error.
// The "strict" ones do not permit implicit copying, so the same situation should result in an error.
if (refKind != RefKind.None && refKind != RefKind.In)
{
Debug.Assert(call.Method.RefKind != RefKind.None);
......@@ -401,7 +401,7 @@ private BoundStatement UpdateStatement(BoundSpillSequenceBuilder builder, BoundS
// - `RefKind.In` (specified with no modifiers and matched an 'In' parameter)
//
// It is allowed to spill ordinary `In` arguments by value if reference-preserving spilling is not possible.
// The "strct" ones do not permit implicit copying, so the same situation should result in an error.
// The "strict" ones do not permit implicit copying, so the same situation should result in an error.
if (refKind != RefKind.None && refKind != RefKind.RefReadOnly)
{
Debug.Assert(conditional.IsByRef);
......
......@@ -526,7 +526,7 @@ private static ImmutableArray<RefKind> GetEffectiveArgumentRefKinds(ImmutableArr
}
}
refKindsBuilder[i] = argRefKind == RefKind.None? paramRefKind: RefKindExtensions.StrictIn;
refKindsBuilder[i] = argRefKind == RefKind.None ? paramRefKind : RefKindExtensions.StrictIn;
}
}
......
......@@ -34,6 +34,10 @@ public enum RefKind : byte
/// Indicates a "ref readonly" return type.
/// </summary>
RefReadOnly = 3,
// NOTE: There is an additional value of this enum type - RefKindExtensions.StrictIn == RefKind.In + 1
// It is used internally during lowering.
// Consider that when adding values or changing this enum in some other way.
}
internal static class RefKindExtensions
......@@ -55,7 +59,7 @@ internal static string ToArgumentDisplayString(this RefKind kind)
{
case RefKind.Out: return "out";
case RefKind.Ref: return "ref";
case RefKind.RefReadOnly: return "in";
case RefKind.In: return "in";
default: throw ExceptionUtilities.UnexpectedValue(kind);
}
}
......@@ -75,6 +79,6 @@ internal static string ToParameterPrefix(this RefKind kind)
// used internally to track `In` arguments that were specified with `In` modifier
// as opposed to those that were specified with no modifiers and matched `In` parameter
// There is at least one kind of anlysis that cares about this distinction - async stack spilling
internal const RefKind StrictIn = (RefKind)(RefKind.In + 1);
internal const RefKind StrictIn = RefKind.In + 1;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册