| File: Linker\MethodIL.cs | Web Access |
| Project: src\runtime\src\tools\illink\src\linker\Mono.Linker.csproj (illink) |
// Copyright (c) .NET Foundation and contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Mono.Cecil; using Mono.Cecil.Cil; using Mono.Collections.Generic; namespace Mono.Linker { /// <summary> /// This is a wrapper which should be used by anything accessing method's body - see LinkContext.GetMethodIL for more details. /// Any accesses made throught this wrapper are considered "safe"/OK since the wrapper is only created /// once all of the optimizations are applied. /// </summary> public readonly record struct MethodIL { MethodIL(MethodBody body) => this.Body = body; public readonly MethodBody Body; public MethodDefinition Method => Body.Method; #pragma warning disable RS0030 // Wrapper which provides safe access to the property public Collection<Instruction> Instructions => Body.Instructions; public Collection<ExceptionHandler> ExceptionHandlers => Body.ExceptionHandlers; public Collection<VariableDefinition> Variables => Body.Variables; #pragma warning restore RS0030 public static MethodIL Create(MethodBody body) => new MethodIL(body); } }