|
// 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>
/// Extension methods to help make working with banned apis easier and more discoverable
/// </summary>
public static class BannedApiExtensions
{
public static Collection<Instruction> Instructions (this MethodBody body, LinkContext context)
=> context.GetMethodIL(body.Method).Instructions;
public static Collection<ExceptionHandler> ExceptionHandlers (this MethodBody body, LinkContext context)
=> context.GetMethodIL (body.Method).ExceptionHandlers;
public static Collection<VariableDefinition> Variables (this MethodBody body, LinkContext context)
=> context.GetMethodIL(body.Method).Variables;
public static MethodIL GetMethodIL (this MethodDefinition method, LinkContext context)
=> context.GetMethodIL (method);
public static MethodIL GetMethodIL (this MethodBody body, LinkContext context)
=> context.GetMethodIL (body);
public static MethodDefinition? Resolve (this MethodReference method, LinkContext context)
=> context.Resolve (method);
public static MethodDefinition? TryResolve (this MethodReference method, LinkContext context)
=> context.TryResolve (method);
public static TypeDefinition? Resolve (this TypeReference type, LinkContext context)
=> context.Resolve (type);
public static TypeDefinition? TryResolve (this TypeReference type, LinkContext context)
=> context.TryResolve (type);
public static TypeDefinition? Resolve (this ExportedType type, LinkContext context)
=> context.Resolve (type);
public static TypeDefinition? TryResolve (this ExportedType type, LinkContext context)
=> context.TryResolve (type);
public static LinkerILProcessor GetLinkerILProcessor (this MethodBody body)
=> new (body);
}
|