| File: Compiler\DependencyAnalysis\ImportedNodeProvider.cs | Web Access |
| Project: src\runtime\src\coreclr\tools\aot\ILCompiler.Compiler\ILCompiler.Compiler.csproj (ILCompiler.Compiler) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using Internal.TypeSystem; namespace ILCompiler.DependencyAnalysis { /// <summary> /// Abstract api to allow creation of various different types of import nodes as might be exposed through the NodeFactory /// </summary> public abstract class ImportedNodeProvider { public abstract IEETypeNode ImportedEETypeNode(NodeFactory factory, TypeDesc type); public abstract ISortableSymbolNode ImportedGCStaticNode(NodeFactory factory, MetadataType type); public abstract ISortableSymbolNode ImportedNonGCStaticNode(NodeFactory factory, MetadataType type); public abstract ISortableSymbolNode ImportedMethodDictionaryNode(NodeFactory factory, MethodDesc method); public abstract IMethodNode ImportedMethodCodeNode(NodeFactory factory, MethodDesc method, bool unboxingStub); } public class ImportedNodeProviderThrowing : ImportedNodeProvider { public override IEETypeNode ImportedEETypeNode(NodeFactory factory, TypeDesc type) { throw new NotSupportedException(); } public override ISortableSymbolNode ImportedGCStaticNode(NodeFactory factory, MetadataType type) { throw new NotSupportedException(); } public override ISortableSymbolNode ImportedNonGCStaticNode(NodeFactory factory, MetadataType type) { throw new NotSupportedException(); } public override ISortableSymbolNode ImportedMethodDictionaryNode(NodeFactory factory, MethodDesc method) { throw new NotSupportedException(); } public override IMethodNode ImportedMethodCodeNode(NodeFactory factory, MethodDesc method, bool unboxingStub) { throw new NotSupportedException(); } } }