Compiler\DependencyAnalysis\EETypeNode.cs (34)
88Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Any) || type == type.ConvertToCanonForm(CanonicalFormKind.Specific));
89Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Any) || !type.IsMdArray); // MDArray doesn't have type loader templates
93_writableDataNode = !_type.IsCanonicalSubtype(CanonicalFormKind.Any) ? new WritableDataNode(this) : null;
254if (_type.IsCanonicalSubtype(CanonicalFormKind.Any))
258return (_type.ConvertToCanonForm(CanonicalFormKind.Specific) != _type);
322if (!_type.IsCanonicalSubtype(CanonicalFormKind.Any))
344sink.Add(new CombinedDependencyListEntry(maximallyConstructableType, factory.MaximallyConstructableType(_type.ConvertToCanonForm(CanonicalFormKind.Specific)), "Trigger full type generation if canonical form exists"));
349TypeDesc canonOwningType = _type.ConvertToCanonForm(CanonicalFormKind.Specific);
391MethodDesc canonImpl = impl.GetCanonMethodTarget(CanonicalFormKind.Specific);
409factory.DelegateTargetVirtualMethod(decl.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Slot is a delegate target"));
479MethodDesc defaultIntfMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
487factory.DelegateTargetVirtualMethod(interfaceMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Interface slot is delegate target"));
496factory.DelegateTargetVirtualMethod(implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)),
497factory.DelegateTargetVirtualMethod(interfaceMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)),
531MethodDesc defaultIntfMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
532if (!isStaticInterfaceMethod && defaultIntfMethod.IsCanonicalMethod(CanonicalFormKind.Any))
535defaultIntfMethod = factory.TypeSystemContext.GetDefaultInterfaceMethodImplementationThunk(defaultIntfMethod, defType.ConvertToCanonForm(CanonicalFormKind.Specific), providingInterfaceDefinitionType, out int providingInterfaceIndex);
549factory.DelegateTargetVirtualMethod(interfaceMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)),
612sink.Add(new DependencyListEntry(factory.SealedVTable(_type.ConvertToCanonForm(CanonicalFormKind.Specific)), "Sealed Vtable"));
624TypeDesc canonicalType = _type.ConvertToCanonForm(CanonicalFormKind.Specific);
645foreach (var method in _type.GetClosestDefType().ConvertToCanonForm(CanonicalFormKind.Specific).GetAllMethodsAndAsyncVariants())
650sink.Add(factory.MethodEntrypoint(method.GetCanonMethodTarget(CanonicalFormKind.Specific)),
768SealedVTableNode sealedVTable = factory.SealedVTable(_type.ConvertToCanonForm(CanonicalFormKind.Specific));
822Debug.Assert(!_type.IsCanonicalSubtype(CanonicalFormKind.Any));
896declType.ConvertToCanonForm(CanonicalFormKind.Specific) == declType;
899if (declType.IsCanonicalSubtype(CanonicalFormKind.Any)
980MethodDesc canonImplMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
994else if (factory.DelegateTargetVirtualMethod(declMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)).Marked)
1015if (_type.IsCanonicalSubtype(CanonicalFormKind.Any))
1049MethodDesc canonFinalizerMethod = finalizerMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
1088SealedVTableNode sealedVTable = factory.SealedVTable(_type.ConvertToCanonForm(CanonicalFormKind.Specific));
1190ISymbolNode dispatchMap = factory.InterfaceDispatchMap(_type.ConvertToCanonForm(CanonicalFormKind.Specific));
1259&& !_type.Type.IsCanonicalSubtype(CanonicalFormKind.Any)
Compiler\DependencyAnalysis\NativeLayoutVertexNode.cs (28)
687Debug.Assert(owningMethod.IsCanonicalMethod(CanonicalFormKind.Any));
694Debug.Assert(owningType.IsCanonicalSubtype(CanonicalFormKind.Any));
783Debug.Assert(method.IsCanonicalMethod(CanonicalFormKind.Any));
784Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method, "Assert that the canonical method passed in is in standard canonical form");
847public TypeDesc CanonType => _type.ConvertToCanonForm(CanonicalFormKind.Specific);
853Debug.Assert(type.IsCanonicalSubtype(CanonicalFormKind.Any));
854Debug.Assert(type.ConvertToCanonForm(CanonicalFormKind.Specific) == type, "Assert that the canonical type passed in is in standard canonical form");
877MetadataType closestCanonDefType = (MetadataType)_type.GetClosestDefType().ConvertToCanonForm(CanonicalFormKind.Specific);
887MetadataType closestCanonDefType = (MetadataType)_type.GetClosestDefType().ConvertToCanonForm(CanonicalFormKind.Specific);
897ISymbolNode typeNode = context.MaximallyConstructableType(_type.ConvertToCanonForm(CanonicalFormKind.Specific));
906sink.Add(context.GenericDictionaryLayout(_type.ConvertToCanonForm(CanonicalFormKind.Specific).GetClosestDefType()), "Dictionary layout");
918if (context.PreinitializationManager.HasLazyStaticConstructor(_type.ConvertToCanonForm(CanonicalFormKind.Specific)))
920sink.Add(context.MethodEntrypoint(_type.GetStaticConstructor().GetCanonMethodTarget(CanonicalFormKind.Specific)), "cctor for template");
932DefType closestCanonDefType = (DefType)_type.GetClosestDefType().ConvertToCanonForm(CanonicalFormKind.Specific);
973DictionaryLayoutNode associatedLayout = factory.GenericDictionaryLayout(_type.ConvertToCanonForm(CanonicalFormKind.Specific).GetClosestDefType());
1004if (factory.PreinitializationManager.HasLazyStaticConstructor(_type.ConvertToCanonForm(CanonicalFormKind.Specific)))
1007MethodDesc canonCctorMethod = cctorMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
1013DefType closestCanonDefType = (DefType)_type.GetClosestDefType().ConvertToCanonForm(CanonicalFormKind.Specific);
1215MethodDesc canonMethod = _method.GetCanonMethodTarget(CanonicalFormKind.Specific);
1231method = method.GetCanonMethodTarget(CanonicalFormKind.Specific);
1266MethodDesc canonMethod = _method.GetCanonMethodTarget(CanonicalFormKind.Specific);
1304GenericMethodsTemplateMap.AddTemplateMethodDependencies(sink, factory, _method.GetCanonMethodTarget(CanonicalFormKind.Specific));
1339var canonOwningType = (InstantiatedType)_field.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific);
1380factory.MetadataManager.GetDependenciesDueToLdToken(sink, factory, _method.GetCanonMethodTarget(CanonicalFormKind.Specific));
1384sink.Add(factory.GVMDependencies(_method.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Potential dynamic GVM call");
1464MethodDesc canonMethod = _constrainedMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
1482var canonConstrainedMethod = _constrainedMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
1539GenericMethodsTemplateMap.AddTemplateMethodDependencies(sink, factory, _method.GetCanonMethodTarget(CanonicalFormKind.Specific));