protected override IMethodNode CreateUnboxingStubNode(MethodDesc method) { if (method.IsCanonicalMethod(CanonicalFormKind.Any) && !method.HasInstantiation) { // Unboxing stubs to canonical instance methods need a special unboxing instantiating stub that unboxes // 'this' and also provides an instantiation argument (we do a calling convention conversion). // The unboxing instantiating stub is emitted by UTC. if (CompilationModuleGroup.ContainsMethodBody(method, true)) { return(NonExternMethodSymbol(method, true)); } return(_importedNodeProvider.ImportedMethodCodeNode(this, method, true)); } else { // Otherwise we just unbox 'this' and don't touch anything else. return(new UnboxingStubNode(method, Target)); } }