diff --git a/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs b/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs index 66a168c8bc703..4ceaf6d4c48ad 100644 --- a/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs +++ b/src/Compilers/CSharp/Portable/CodeGen/EmitStackAllocInitializer.cs @@ -98,23 +98,23 @@ private void EmitStackAllocBlockMultiByteInitializer(ImmutableArray data, { // get helpers var definition = (MethodSymbol)_module.Compilation.GetWellKnownTypeMember(WellKnownMember.System_ReadOnlySpan_T__GetPinnableReference)!; - var getPinnableReference = definition.AsMember(definition.ContainingType.Construct(elementType)).GetCciAdapter(); - var readOnlySpan = ((NamedTypeSymbol)_module.Compilation.CommonGetWellKnownType(WellKnownType.System_ReadOnlySpan_T)).Construct(elementType).GetCciAdapter(); + var getPinnableReference = definition.AsMember(definition.ContainingType.Construct(elementType)); + var readOnlySpan = ((NamedTypeSymbol)_module.Compilation.CommonGetWellKnownType(WellKnownType.System_ReadOnlySpan_T)).Construct(elementType); // emit call to the helper _builder.EmitOpCode(ILOpCode.Dup); _builder.EmitCreateSpan(data, elementType.GetPublicSymbol(), syntaxNode, diagnostics); - var temp = _builder.LocalSlotManager.AllocateSlot(readOnlySpan, LocalSlotConstraints.None); + var temp = AllocateTemp(readOnlySpan, syntaxNode); _builder.EmitLocalStore(temp); _builder.EmitLocalAddress(temp); - _builder.LocalSlotManager.FreeSlot(temp); + FreeTemp(temp); - // TODO: is this safe without pinning? + // PROTOTYPE: is this safe without pinning? _builder.EmitOpCode(ILOpCode.Call, 0); - _builder.EmitToken(getPinnableReference, syntaxNode, diagnostics); + EmitSymbolToken(getPinnableReference, syntaxNode, optArgList: null); _builder.EmitIntConstant(data.Length); - // TODO: is this correct without unaligned.? + // PROTOTYPE: is this correct without unaligned.? _builder.EmitOpCode(ILOpCode.Cpblk, -3); } diff --git a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Conversion.cs b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Conversion.cs index 838bf4b5f24a3..6d5e0a5cf3f8f 100644 --- a/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Conversion.cs +++ b/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_Conversion.cs @@ -55,7 +55,7 @@ public override BoundNode VisitConversion(BoundConversion node) }; if (CodeGen.CodeGenerator.UseCreateSpanForReadOnlySpanInitialization(hasCreateSpanHelper, considerInitblk: !isArrayCreation, elementType, initializerOpt, - /* TODO: how to find out if this is ENC? */ supportsPrivateImplClass: true)) + /* PROTOTYPE: how to find out if this is ENC? */ supportsPrivateImplClass: true)) { return new BoundConvertedStackAllocExpression(node.Operand.Syntax, elementType, count, initializerOpt, rewrittenType); }