642 references to CanonicalFormKind
ILCompiler.Compiler (368)
Compiler\Compilation.cs (5)
285Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Any) || type.IsCanonicalDefinitionType(CanonicalFormKind.Any)); 486Debug.Assert(!calledMethod.IsCanonicalMethod(CanonicalFormKind.Specific)); 488MethodDesc targetMethod = calledMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 509if (!slotNormalizedMethod.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any))
Compiler\CompilerTypeSystemContext.GeneratedAssembly.cs (1)
136public override bool IsCanonicalSubtype(CanonicalFormKind policy)
Compiler\Dataflow\HandleCallAction.cs (2)
315_reflectionMarker.Dependencies.Add(_reflectionMarker.Factory.ReflectedMethod(ctorMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Marshal API"); 388_reflectionMarker.Dependencies.Add(_reflectionMarker.Factory.ReflectedDelegate(staticType.ConvertToCanonForm(CanonicalFormKind.Specific)), "Delegate.Method access");
Compiler\DelegateCreationInfo.cs (3)
244MethodDesc targetCanonMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 279targetMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 285targetMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\CanonicalDefinitionEETypeNode.cs (1)
16Debug.Assert(type.IsCanonicalDefinitionType(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\ConstructedEETypeNode.cs (4)
16Debug.Assert(!type.IsCanonicalDefinitionType(CanonicalFormKind.Any)); 61if (!_type.IsCanonicalSubtype(CanonicalFormKind.Any)) 74Debug.Assert(!_type.IsCanonicalSubtype(CanonicalFormKind.Any)); 116if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any))
Compiler\DependencyAnalysis\CustomAttributeBasedDependencyAlgorithm.cs (2)
128caDependencies.Add(factory.ReflectedMethod(constructor.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Attribute constructor"); 244dependencies.Add(factory.ReflectedMethod(setterMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Custom attribute blob");
Compiler\DependencyAnalysis\DelegateTargetVirtualMethodNode.cs (3)
23Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method); 49Debug.Assert(declaration.GetCanonMethodTarget(CanonicalFormKind.Specific) == declaration); 50Debug.Assert(implementation.GetCanonMethodTarget(CanonicalFormKind.Specific) == implementation);
Compiler\DependencyAnalysis\DictionaryLayoutNode.cs (1)
40Debug.Assert(type.IsCanonicalSubtype(CanonicalFormKind.Any));
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\ExactMethodInstantiationsEntryNode.cs (2)
22Debug.Assert(!method.GetCanonMethodTarget(CanonicalFormKind.Specific).IsCanonicalMethod(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\FatFunctionPointerNode.cs (2)
26Debug.Assert(methodRepresented.GetCanonMethodTarget(CanonicalFormKind.Specific) != methodRepresented); 69MethodDesc canonMethod = Method.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\FrozenRuntimeTypeNode.cs (1)
19Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\GCStaticsNode.cs (3)
22Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Specific)); 68public override bool HasConditionalStaticDependencies => _type.ConvertToCanonForm(CanonicalFormKind.Specific) != _type; 76factory.NativeLayout.TemplateTypeLayout(_type.ConvertToCanonForm(CanonicalFormKind.Specific)),
Compiler\DependencyAnalysis\GCStaticsPreInitDataNode.cs (1)
23Debug.Assert(!preinitializationInfo.Type.IsCanonicalSubtype(CanonicalFormKind.Specific));
Compiler\DependencyAnalysis\GenericDictionaryNode.cs (11)
114return factory.GenericDictionaryLayout(_owningType.ConvertToCanonForm(CanonicalFormKind.Specific)); 124TypeDesc canonicalOwningType = _owningType.ConvertToCanonForm(CanonicalFormKind.Specific); 138factory.ConstructedTypeSymbol(arg.ConvertToCanonForm(CanonicalFormKind.Specific)), 160factory.MethodEntrypoint(method.GetCanonMethodTarget(CanonicalFormKind.Specific)), 169Debug.Assert(!owningType.IsCanonicalSubtype(CanonicalFormKind.Any)); 172Debug.Assert(owningType.ConvertToCanonForm(CanonicalFormKind.Specific) != owningType); 208MethodDesc canonicalTarget = _owningMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 226factory.ConstructedTypeSymbol(arg.ConvertToCanonForm(CanonicalFormKind.Specific)), 236factory.ConstructedTypeSymbol(arg.ConvertToCanonForm(CanonicalFormKind.Specific)), 247return factory.GenericDictionaryLayout(_owningMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)); 274Debug.Assert(owningMethod.GetCanonMethodTarget(CanonicalFormKind.Specific) != owningMethod);
Compiler\DependencyAnalysis\GenericLookupResult.cs (36)
106if (argument.IsRuntimeDeterminedSubtype || argument.IsCanonicalSubtype(CanonicalFormKind.Any)) 204if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 208Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 262if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 266Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 320if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 324Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 383if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 387Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 441if (isConcreteInstantiation || !instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 447Debug.Assert(instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)); 506if (!isConcreteInstantiation && instantiatedField.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any)) 510Debug.Assert(!instantiatedField.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any)); 563if (isConcreteInstantiation || !instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 569Debug.Assert(instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)); 631if (isConcreteInstantiation || !instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 638Debug.Assert(instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)); 661MethodDesc canonMethod = _method.GetCanonMethodTarget(CanonicalFormKind.Specific); 713if (isConcreteInstantiation || !instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 733Debug.Assert(instantiatedMethod.IsCanonicalMethod(CanonicalFormKind.Any)); 791if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 795Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 848if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 852Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 904if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 908Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 960if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 964Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 1012if (!isConcreteInstantiation && instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 1016Debug.Assert(!instantiatedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 1070MethodDesc canonMethod = _constrainedMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1089(instantiatedConstrainedMethod.IsCanonicalMethod(CanonicalFormKind.Any) || 1090instantiatedConstraintType.IsCanonicalSubtype(CanonicalFormKind.Any))) 1094Debug.Assert(!instantiatedConstrainedMethod.IsCanonicalMethod(CanonicalFormKind.Any)); 1095Debug.Assert(!instantiatedConstraintType.IsCanonicalSubtype(CanonicalFormKind.Any)); 1139if (implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific).IsSharedByGenericInstantiations)
Compiler\DependencyAnalysis\GenericMethodsHashtableNode.cs (2)
54Debug.Assert(method.HasInstantiation && !method.IsCanonicalMethod(CanonicalFormKind.Any)); 100Debug.Assert(method.HasInstantiation && !method.IsCanonicalMethod(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\GenericMethodsTemplateMap.cs (2)
93if (method.IsCanonicalMethod(CanonicalFormKind.Specific)) 96Debug.Assert(method == method.GetCanonMethodTarget(CanonicalFormKind.Specific));
Compiler\DependencyAnalysis\GenericStaticBaseInfoNode.cs (1)
22Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\GenericTypesHashtableNode.cs (1)
49if (!type.HasInstantiation || type.IsGenericDefinition || type.IsCanonicalSubtype(CanonicalFormKind.Any))
Compiler\DependencyAnalysis\GenericTypesTemplateMap.cs (2)
115if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 118Debug.Assert(type == type.ConvertToCanonForm(CanonicalFormKind.Specific));
Compiler\DependencyAnalysis\GenericVirtualMethodImplNode.cs (1)
22Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method);
Compiler\DependencyAnalysis\GvmDispatchCellInfoSectionNode.cs (1)
102MethodDesc canonMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ILScanNodeFactory.cs (1)
49if (!Target.IsWasm && method.IsCanonicalMethod(CanonicalFormKind.Specific) && !method.HasInstantiation)
Compiler\DependencyAnalysis\InterfaceDispatchMapNode.cs (3)
26Debug.Assert(type.ConvertToCanonForm(CanonicalFormKind.Specific) == type); 208int genericContext = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific).RequiresInstArg() 258implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific).RequiresInstArg())
Compiler\DependencyAnalysis\MetadataEETypeNode.cs (1)
16Debug.Assert(!type.IsCanonicalDefinitionType(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\MethodAssociatedDataNode.cs (1)
31Debug.Assert(methodNode.Method.GetCanonMethodTarget(CanonicalFormKind.Specific) == methodNode.Method);
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));
Compiler\DependencyAnalysis\NodeFactory.cs (9)
686else if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 704Debug.Assert(!type.IsCanonicalDefinitionType(CanonicalFormKind.Any)); 727Debug.Assert(!type.IsCanonicalDefinitionType(CanonicalFormKind.Any)); 858if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 1197MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 1206MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 1215MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 1338new ShadowConcreteMethodNode(key, (IMethodBodyNode)_factory.MethodEntrypoint(key.GetCanonMethodTarget(CanonicalFormKind.Specific))); 1356new ShadowNonConcreteMethodNode(key, (IMethodBodyNode)_factory.MethodEntrypoint(key.GetCanonMethodTarget(CanonicalFormKind.Specific)));
Compiler\DependencyAnalysis\NodeFactory.NativeLayout.cs (5)
161TypeDesc arrayCanonicalType = type.ConvertToCanonForm(CanonicalFormKind.Specific); 164if (arrayCanonicalType.IsCanonicalSubtype(CanonicalFormKind.Any) && !_factory.NecessaryTypeSymbol(arrayCanonicalType).RepresentsIndirectionCell) 191TypeDesc canonicalType = type.ConvertToCanonForm(CanonicalFormKind.Specific); 195if (canonicalType.IsCanonicalSubtype(CanonicalFormKind.Any) && !_factory.NecessaryTypeSymbol(canonicalType).RepresentsIndirectionCell) 197if (!_factory.TypeSystemContext.IsCanonicalDefinitionType(canonicalType, CanonicalFormKind.Any))
Compiler\DependencyAnalysis\NonGCStaticsNode.cs (4)
28Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Specific)); 111TypeDesc canonType = type.ConvertToCanonForm(CanonicalFormKind.Specific); 157public override bool HasConditionalStaticDependencies => _type.ConvertToCanonForm(CanonicalFormKind.Specific) != _type; 165factory.NativeLayout.TemplateTypeLayout(_type.ConvertToCanonForm(CanonicalFormKind.Specific)),
Compiler\DependencyAnalysis\NotReadOnlyFieldNode.cs (2)
23Debug.Assert(!field.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any) 24|| field.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific) == field.OwningType);
Compiler\DependencyAnalysis\ProxyTypeMapNode.cs (1)
52TypeDesc canonKey = key.ConvertToCanonForm(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ReadyToRunGenericHelperNode.cs (3)
126return factory.PreinitializationManager.HasLazyStaticConstructor(type.ConvertToCanonForm(CanonicalFormKind.Specific)); 251MethodDesc targetMethod = delegateCreationInfo.PossiblyUnresolvedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 293MethodDesc targetMethod = delegateCreationInfo.PossiblyUnresolvedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ReadyToRunHelperNode.cs (3)
78Debug.Assert(!method.IsCanonicalMethod(CanonicalFormKind.Any) || 79method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method); 157info.PossiblyUnresolvedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific));
Compiler\DependencyAnalysis\ReflectedDelegateNode.cs (1)
31|| delegateType.ConvertToCanonForm(CanonicalFormKind.Specific) == delegateType);
Compiler\DependencyAnalysis\ReflectedFieldNode.cs (3)
26Debug.Assert(!field.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any) 27|| field.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific) == field.OwningType); 62if (_field.IsStatic && !_field.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any))
Compiler\DependencyAnalysis\ReflectedMethodNode.cs (1)
27Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method);
Compiler\DependencyAnalysis\ReflectedTypeNode.cs (3)
28Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Any) 29|| type.ConvertToCanonForm(CanonicalFormKind.Specific) == type); 39if (_type.IsCanonicalSubtype(CanonicalFormKind.Any))
Compiler\DependencyAnalysis\ReflectionFieldMapNode.cs (1)
147int hashCode = field.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific).GetHashCode();
Compiler\DependencyAnalysis\ReflectionInvokeMapNode.cs (3)
44Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method); 106if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 141Debug.Assert(method == method.GetCanonMethodTarget(CanonicalFormKind.Specific));
Compiler\DependencyAnalysis\ReflectionVirtualInvokeMapNode.cs (3)
86factory.NecessaryTypeSymbol(method.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific)), 95dependencies.Add(factory.GVMDependencies(slotDefiningMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)), "GVM callable reflectable method"); 156TypeDesc containingTypeKey = method.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\RuntimeFieldHandleNode.cs (1)
18Debug.Assert(!targetField.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\RuntimeMethodHandleNode.cs (1)
56MethodDesc canonMethod = _targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ScannedMethodNode.cs (1)
34Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method);
Compiler\DependencyAnalysis\SealedVTableNode.cs (12)
139if (factory.DelegateTargetVirtualMethod(virtualSlots[i].GetCanonMethodTarget(CanonicalFormKind.Specific)).Marked) 140node = factory.AddressTakenMethodEntrypoint(implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific), unboxingStub: !implMethod.Signature.IsStatic && declType.IsValueType); 142node = factory.MethodEntrypoint(implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific), unboxingStub: !implMethod.Signature.IsStatic && declType.IsValueType); 199if (factory.DelegateTargetVirtualMethod(declMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)).Marked) 200node = factory.AddressTakenMethodEntrypoint(targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific), unboxingStub: !targetMethod.Signature.IsStatic && declType.IsValueType); 202node = factory.MethodEntrypoint(targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific), unboxingStub: !targetMethod.Signature.IsStatic && declType.IsValueType); 218MethodDesc canonImplMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 219if (canonImplMethod.IsCanonicalMethod(CanonicalFormKind.Any) && !canonImplMethod.Signature.IsStatic) 223canonImplMethod = factory.TypeSystemContext.GetDefaultInterfaceMethodImplementationThunk(canonImplMethod, declType.ConvertToCanonForm(CanonicalFormKind.Specific), providingInterfaceDefinitionType, out int providingInterfaceIndex); 234if (factory.DelegateTargetVirtualMethod(declMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)).Marked) 277&& _type.IsCanonicalSubtype(CanonicalFormKind.Any) 345Debug.Assert(_interfaceDefinition == null || !method.IsCanonicalMethod(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\StaticsInfoHashtableNode.cs (1)
46Debug.Assert(metadataType.HasInstantiation && !metadataType.IsCanonicalSubtype(CanonicalFormKind.Any));
Compiler\DependencyAnalysis\ThreadStaticsNode.cs (3)
24Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Specific)); 102_type.ConvertToCanonForm(CanonicalFormKind.Specific) != _type: 113factory.NativeLayout.TemplateTypeLayout(_type.ConvertToCanonForm(CanonicalFormKind.Specific)),
Compiler\DependencyAnalysis\UnboxingStubNode.cs (1)
37Debug.Assert(target.GetCanonMethodTarget(CanonicalFormKind.Specific) == target);
Compiler\DependencyAnalysis\VTableSliceNode.cs (3)
87TypeDesc canonType = _type.ConvertToCanonForm(CanonicalFormKind.Specific); 216return _type.ConvertToCanonForm(CanonicalFormKind.Specific) != _type; 241factory.VirtualMethodUse(method.GetCanonMethodTarget(CanonicalFormKind.Specific)),
Compiler\ILScanner.cs (21)
72if (method.IsCanonicalMethod(CanonicalFormKind.Any) 384MethodDesc targetMethod = methodDictLookup.Method.GetCanonMethodTarget(CanonicalFormKind.Specific); 499TypeDesc canonForm = type.ConvertToCanonForm(CanonicalFormKind.Specific); 552if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 569TypeDesc canonType = type.ConvertToCanonForm(CanonicalFormKind.Specific); 578baseType = baseType.ConvertToCanonForm(CanonicalFormKind.Specific); 588baseType = baseType.ConvertToCanonForm(CanonicalFormKind.Specific); 623_overriddenMethods.Add(baseVtable[i].GetCanonMethodTarget(CanonicalFormKind.Specific)); 652if (baseType.IsCanonicalSubtype(CanonicalFormKind.Any) 653|| baseType.ConvertToCanonForm(CanonicalFormKind.Specific) != baseType) 685TypeDesc canonType = type.ConvertToCanonForm(CanonicalFormKind.Specific); 691if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 722MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 734if (!_canonConstructedTypes.Contains(implType.ConvertToCanonForm(CanonicalFormKind.Specific))) 909if (t.ConvertToCanonForm(CanonicalFormKind.Specific) != t) 960&& nonGCStatics.Type.ConvertToCanonForm(CanonicalFormKind.Specific) != nonGCStatics.Type 963_canonFormsWithCctorChecks.Add(nonGCStatics.Type.ConvertToCanonForm(CanonicalFormKind.Specific)); 969&& eeType.Type.ConvertToCanonForm(CanonicalFormKind.Specific) != eeType.Type 972_canonFormsWithCctorChecks.Add(eeType.Type.ConvertToCanonForm(CanonicalFormKind.Specific)); 982Debug.Assert(type.IsCanonicalSubtype(CanonicalFormKind.Any)); 1008var canonOwningType = (InstantiatedType)owningType.ConvertToCanonForm(CanonicalFormKind.Specific);
Compiler\MetadataManager.cs (8)
478factory.NativeLayout.TemplateMethodEntry(method.GetCanonMethodTarget(CanonicalFormKind.Specific)), 504if (!method.IsCanonicalMethod(CanonicalFormKind.Any) && method.IsStaticConstructor) 529TypeDesc owningCanonicalType = field.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific); 866Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method); 898TypeDesc canonOwningType = field.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific); 899if (canonOwningType.IsCanonicalSubtype(CanonicalFormKind.Any)) 1168if (parameterType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 1205if (IsReflectionBlocked(type) && !type.IsCanonicalDefinitionType(CanonicalFormKind.Any))
Compiler\MultiFileCompilationModuleGroup.cs (3)
55Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) != method); 106type.ConvertToCanonForm(CanonicalFormKind.Specific).IsCanonicalSubtype(CanonicalFormKind.Any);
Compiler\PreinitializationManager.cs (2)
115if (item.Type.IsCanonicalSubtype(CanonicalFormKind.Any)) 169(key.ConvertToCanonForm(CanonicalFormKind.Specific) is DefType canonType && (key == canonType || !_policy.CanPreinitializeAllConcreteFormsForCanonForm(canonType))));
Compiler\RootingHelpers.cs (2)
61foreach (var method in type.ConvertToCanonForm(CanonicalFormKind.Specific).GetMethods()) 234factory.ReflectedMethod(method.GetCanonMethodTarget(CanonicalFormKind.Specific)),
Compiler\RootingServiceProvider.cs (2)
29MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 66_rootAdder(_factory.ReflectedMethod(method.GetCanonMethodTarget(CanonicalFormKind.Specific)), reason);
Compiler\RuntimeConstructableTypeDependencies.cs (3)
27&& !trimmingTargetType.ConvertToCanonForm(CanonicalFormKind.Specific).GetParameterType().IsCanonicalDefinitionType(CanonicalFormKind.Any)) 65TypeDesc canonType = type.ConvertToCanonForm(CanonicalFormKind.Specific);
Compiler\SingleFileCompilationModuleGroup.cs (1)
29Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) != method);
Compiler\SingleMethodCompilationModuleGroup.cs (2)
33return method == _method || method == _method.GetCanonMethodTarget(CanonicalFormKind.Specific); 38Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) != method);
Compiler\SubstitutedILProvider.cs (2)
1056if (knownType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 1095if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any))
Compiler\TypePreinit.cs (3)
76if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 3274Type.ConvertToCanonForm(CanonicalFormKind.Specific), 3287MethodDesc targetMethod = creationInfo.PossiblyUnresolvedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\UsageBasedInteropStubManager.cs (1)
80else if (type.IsCanonicalSubtype(CanonicalFormKind.Any))
Compiler\UsageBasedMetadataManager.cs (11)
309dependencies.Add(factory.ReflectedMethod(invokeMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Delegate invoke method is always reflectable"); 323dependencies.Add(factory.ReflectedMethod(defaultConstructor.GetCanonMethodTarget(CanonicalFormKind.Specific)), "Array.Initialize needs default constructor"); 526factory.ReflectedMethod(reflectedMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)), 546MethodDesc canonicalMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 564ReflectedMethodNode reflectedMethod = factory.ReflectedMethod(target.GetCanonMethodTarget(CanonicalFormKind.Specific)); 566TypeDesc canonDelegateType = delegateType.ConvertToCanonForm(CanonicalFormKind.Specific); 587DelegateTargetVirtualMethodNode targetVirtualMethod = factory.ReflectedDelegateTargetVirtualMethod(target.GetCanonMethodTarget(CanonicalFormKind.Specific)); 621decl.GetCanonMethodTarget(CanonicalFormKind.Specific), 622impl.GetCanonMethodTarget(CanonicalFormKind.Specific)), 705var dependency = factory.ReflectedMethod(method.GetCanonMethodTarget(CanonicalFormKind.Specific)); 744if (fieldOwningType.IsCanonicalSubtype(CanonicalFormKind.Specific))
Compiler\UserDefinedTypeDescriptor.cs (6)
247if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 248return type.ConvertToCanonForm(CanonicalFormKind.Specific); 534if (type.IsCanonicalSubtype(CanonicalFormKind.Specific) || ShouldUseCanonicalTypeRecord(type)) 536type = type.ConvertToCanonForm(CanonicalFormKind.Specific); 540type = type.ConvertToCanonForm(CanonicalFormKind.Universal); 599bool isCanonical = defType.IsCanonicalSubtype(CanonicalFormKind.Any);
Compiler\VirtualMethodCallHelper.cs (3)
132baseType = baseType.ConvertToCanonForm(CanonicalFormKind.Specific); 175(type.ConvertToCanonForm(CanonicalFormKind.Specific) != type || type.IsCanonicalSubtype(CanonicalFormKind.Any));
IL\ILImporter.Scanner.cs (21)
178if (_canonMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 217_compilation.TypeSystemContext.EnsureLoadableType(type.ConvertToCanonForm(CanonicalFormKind.Specific)); 223_compilation.TypeSystemContext.EnsureLoadableMethod(method.GetCanonMethodTarget(CanonicalFormKind.Specific)); 742constrained = constrained.ConvertToCanonForm(CanonicalFormKind.Specific); 795exactContextNeedsRuntimeLookup = exactType.IsCanonicalSubtype(CanonicalFormKind.Any); 867Debug.Assert(targetOfLookup.GetCanonMethodTarget(CanonicalFormKind.Specific) == targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)); 873else if (directCall && !allowInstParam && targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific).RequiresInstArg()) 903targetMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1014methodToLookup.GetCanonMethodTarget(CanonicalFormKind.Specific)); 1062TypeDesc canonDelegateType = ctorMethod.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific); 1135MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 1195&& !typeEqualityCheckType.ConvertToCanonForm(CanonicalFormKind.Specific).IsCanonicalSubtype(CanonicalFormKind.Any)) 1217&& !isinstCheckType.ConvertToCanonForm(CanonicalFormKind.Specific).IsCanonicalSubtype(CanonicalFormKind.Any) 1354if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 1454TypeDesc canonFieldOwningType = fieldOwningType.ConvertToCanonForm(CanonicalFormKind.Specific); 1584Debug.Assert(!type.IsCanonicalSubtype(CanonicalFormKind.Any)); 1591TypeDesc typeForAccessCheck = type.IsRuntimeDeterminedSubtype ? type.ConvertToCanonForm(CanonicalFormKind.Specific) : type; 2076MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific);
parent\parent\Common\Compiler\AsyncMethodVariant.cs (2)
44public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 110public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\Compiler\CompilerTypeSystemContext.cs (3)
292protected override Instantiation ConvertInstantiationToCanonForm(Instantiation instantiation, CanonicalFormKind kind, out bool changed) 302protected override TypeDesc ConvertToCanon(TypeDesc typeToConvert, CanonicalFormKind kind) 311protected override TypeDesc ConvertToCanon(TypeDesc typeToConvert, ref CanonicalFormKind kind)
parent\parent\Common\Compiler\CompilerTypeSystemContext.Validation.cs (2)
345if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 387if (!defType.IsCanonicalSubtype(CanonicalFormKind.Any) && !defType.CheckConstraints())
parent\parent\Common\Compiler\DependencyAnalysis\GVMDependenciesNode.cs (6)
32Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method); 110potentialOverrideType.ConvertToCanonForm(CanonicalFormKind.Specific) != potentialOverrideType) 135if (potentialInterfaces[interfaceIndex].ConvertToCanonForm(CanonicalFormKind.Specific) == methodOwningType) 161MethodDesc canonImpl = implementingMethodInstantiation.GetCanonMethodTarget(CanonicalFormKind.Specific); 218if (overrideTypeCur.ConvertToCanonForm(CanonicalFormKind.Specific) == methodOwningType) 241.GetCanonMethodTarget(CanonicalFormKind.Specific);
parent\parent\Common\Compiler\DependencyAnalysis\ShadowMethodNode.cs (1)
48Debug.Assert(canonicalMethod.Method == method.GetCanonMethodTarget(CanonicalFormKind.Specific));
parent\parent\Common\Compiler\DependencyAnalysis\VirtualMethodUseNode.cs (2)
65MethodDesc canonDecl = _decl.GetCanonMethodTarget(CanonicalFormKind.Specific); 72if (!_decl.IsCanonicalMethod(CanonicalFormKind.Any) || canonDecl == _decl)
parent\parent\Common\Compiler\DevirtualizationManager.cs (6)
74if (declMethod.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any) || implType.IsCanonicalSubtype(CanonicalFormKind.Any)) 78DefType canonicalInterfaceType = (DefType)declMethod.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific); 83runtimeInterface.ConvertToCanonForm(CanonicalFormKind.Specific) == canonicalInterfaceType) 185if ((checkType == null) || (checkType.ConvertToCanonForm(CanonicalFormKind.Specific) != declMethod.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific)))
parent\parent\Common\Compiler\MethodExtensions.cs (2)
133&& !owningType.ConvertToCanonForm(CanonicalFormKind.Specific).IsCanonicalSubtype(CanonicalFormKind.Any))
parent\parent\Common\Compiler\TypeExtensions.cs (19)
106public static bool IsCanonicalDefinitionType(this TypeDesc type, CanonicalFormKind kind) 164if (!type1.IsCanonicalSubtype(CanonicalFormKind.Any) && !type2.IsCanonicalSubtype(CanonicalFormKind.Any)) 179if (type1.IsCanonicalDefinitionType(CanonicalFormKind.Any) || type2.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 182if (type1.IsCanonicalDefinitionType(CanonicalFormKind.Universal) || type2.IsCanonicalDefinitionType(CanonicalFormKind.Universal)) 426interfaceMethod = interfaceMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 440if (arg.IsCanonicalSubtype(CanonicalFormKind.Any)) 448interfaceType.IsCanonicalSubtype(CanonicalFormKind.Any)) 457TypeDesc interfaceTypeCanonical = interfaceType.ConvertToCanonForm(CanonicalFormKind.Specific); 504TypeDesc canonType = constrainedType.ConvertToCanonForm(CanonicalFormKind.Specific); 523if (potentialInterfaceType.ConvertToCanonForm(CanonicalFormKind.Specific) == 524interfaceType.ConvertToCanonForm(CanonicalFormKind.Specific)) 559if (!interfaceType.IsCanonicalSubtype(CanonicalFormKind.Any) && 561!constrainedType.IsCanonicalSubtype(CanonicalFormKind.Any) && 638if (method.IsCanonicalMethod(CanonicalFormKind.Any) 680if (thisType.IsCanonicalSubtype(CanonicalFormKind.Any)) 681return thisType.ConvertToCanonForm(CanonicalFormKind.Specific);
parent\parent\Common\Internal\Runtime\EETypeBuilderHelpers.cs (2)
83&& !type.IsCanonicalSubtype(CanonicalFormKind.Universal) 88else if (type.IsArray && !type.IsCanonicalSubtype(CanonicalFormKind.Universal))
parent\parent\Common\TypeSystem\IL\NativeAotILProvider.cs (2)
218&& !elementType.IsCanonicalSubtype(CanonicalFormKind.Any) 232&& !elementType.IsCanonicalSubtype(CanonicalFormKind.Any)
parent\parent\Common\TypeSystem\IL\Stubs\ComparerIntrinsics.cs (8)
61if (comparedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 84if (context.IsCanonicalDefinitionType(type, CanonicalFormKind.Any) || 135Debug.Assert(type.IsCanonicalSubtype(CanonicalFormKind.Any)); 148if (context.IsCanonicalDefinitionType(type, CanonicalFormKind.Universal)) 179Debug.Assert(context.IsCanonicalDefinitionType(nullableType, CanonicalFormKind.Universal)); 215if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 218if (implementedInterface.ConvertToCanonForm(CanonicalFormKind.Specific) != 219interfaceType.MakeInstantiatedType(type).ConvertToCanonForm(CanonicalFormKind.Specific))
parent\parent\Common\TypeSystem\IL\Stubs\RuntimeHelpersIntrinsics.cs (1)
29if (elementType.IsCanonicalSubtype(CanonicalFormKind.Universal))
ILCompiler.ReadyToRun (115)
Compiler\DependencyAnalysis\ArrayInterfaceMethodsNode.cs (1)
65MethodDesc canonHelperMethod = helperMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\InheritedVirtualMethodsNode.cs (3)
31Debug.Assert(type == type.ConvertToCanonForm(CanonicalFormKind.Specific)); 62MethodDesc canonImpl = impl.GetCanonMethodTarget(CanonicalFormKind.Specific); 120implMethod = implMethod.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ReadyToRun\DelayLoadHelperMethodImport.cs (1)
46MethodDesc canonMethod = _method.Method.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ReadyToRun\MethodFixupSignature.cs (2)
59public bool NeedsInstantiationArg => _method.ConstrainedType?.IsCanonicalSubtype(CanonicalFormKind.Any) ?? false; 86MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ReadyToRun\ModuleTokenResolver.cs (2)
104method = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 337else if (type.IsCanonicalDefinitionType(CanonicalFormKind.Specific))
Compiler\DependencyAnalysis\ReadyToRun\SignatureBuilder.cs (1)
302else if (typeDesc.IsCanonicalDefinitionType(CanonicalFormKind.Specific))
Compiler\DependencyAnalysis\ReadyToRun\TypeFixupSignature.cs (1)
234foreach (MethodDesc method in type.ConvertToCanonForm(CanonicalFormKind.Specific).GetAllMethods())
Compiler\DependencyAnalysis\ReadyToRunCodegenNodeFactory.cs (7)
137Debug.Assert(method == method.GetCanonMethodTarget(CanonicalFormKind.Specific)); 211return _allMethodsOnType.GetOrAdd(type.ConvertToCanonForm(CanonicalFormKind.Specific)); 225return _arrayInterfaceMethods.GetOrAdd((ArrayType)arrayType.ConvertToCanonForm(CanonicalFormKind.Specific)); 233type = type.ConvertToCanonForm(CanonicalFormKind.Specific); 258MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 269MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific); 673MethodDesc compilableMethod = method.Method.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\DependencyAnalysis\ReadyToRunSymbolNodeFactory.cs (1)
451bool useInstantiatingStub = method.Method.GetCanonMethodTarget(CanonicalFormKind.Specific) != method.Method;
Compiler\ReadyToRunCodegenCompilation.cs (1)
261MethodDesc canonMethod = method.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\ReadyToRunCompilationModuleGroupBase.cs (6)
358type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 541if (instArg.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 596bool usesCanon = t.IsCanonicalDefinitionType(CanonicalFormKind.Any); 603bool usesCanon = t.IsCanonicalDefinitionType(CanonicalFormKind.Any); 821if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 838if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any))
Compiler\ReadyToRunJitHelperRootProvider.cs (1)
211return result.GetCanonMethodTarget(CanonicalFormKind.Specific);
Compiler\SingleMethodCompilationModuleGroup.cs (1)
29return (method == _method) || (method == _method.GetCanonMethodTarget(CanonicalFormKind.Specific));
JitInterface\CorInfoImpl.ReadyToRun.cs (18)
259var canonicalizedOwningType = instantiatedOwningType.ConvertToCanonForm(CanonicalFormKind.Specific); 300currentType = currentType.ConvertToCanonForm(CanonicalFormKind.Specific); 309interfaceType.ConvertToCanonForm(CanonicalFormKind.Specific) == canonicalizedOwningType) 987if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 997if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 1006if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 1019if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 1035if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 1942else if (field.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any) || _compilation.NodeFactory.Target.IsWasm) 2093useInstantiatingStub = originalMethod.OwningType.IsArray || originalMethod.GetCanonMethodTarget(CanonicalFormKind.Specific).RequiresInstMethodDescArg(); 2236bool constrainedTypeNeedsRuntimeLookup = (constrainedType != null && constrainedType.IsCanonicalSubtype(CanonicalFormKind.Any)); 2246pResult->exactContextNeedsRuntimeLookup = constrainedTypeNeedsRuntimeLookup || exactType.IsCanonicalSubtype(CanonicalFormKind.Any); 2347MethodDesc canonMethod = (isArrayConstructor ? null : targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)); 2771MethodDesc compilableTarget = nonUnboxingMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 2829MethodDesc canonMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 2896|| typeDefinition.IsCanonicalDefinitionType(CanonicalFormKind.Specific)) 3087runtimeLookup = fd.IsStatic && td.IsCanonicalSubtype(CanonicalFormKind.Specific); 3113runtimeLookup = td.IsCanonicalSubtype(CanonicalFormKind.Specific);
parent\parent\Common\Compiler\AsyncMethodVariant.cs (2)
44public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 110public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\Compiler\CompilerTypeSystemContext.cs (3)
292protected override Instantiation ConvertInstantiationToCanonForm(Instantiation instantiation, CanonicalFormKind kind, out bool changed) 302protected override TypeDesc ConvertToCanon(TypeDesc typeToConvert, CanonicalFormKind kind) 311protected override TypeDesc ConvertToCanon(TypeDesc typeToConvert, ref CanonicalFormKind kind)
parent\parent\Common\Compiler\CompilerTypeSystemContext.Validation.cs (2)
345if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 387if (!defType.IsCanonicalSubtype(CanonicalFormKind.Any) && !defType.CheckConstraints())
parent\parent\Common\Compiler\DependencyAnalysis\GVMDependenciesNode.cs (6)
32Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method); 110potentialOverrideType.ConvertToCanonForm(CanonicalFormKind.Specific) != potentialOverrideType) 135if (potentialInterfaces[interfaceIndex].ConvertToCanonForm(CanonicalFormKind.Specific) == methodOwningType) 161MethodDesc canonImpl = implementingMethodInstantiation.GetCanonMethodTarget(CanonicalFormKind.Specific); 218if (overrideTypeCur.ConvertToCanonForm(CanonicalFormKind.Specific) == methodOwningType) 241.GetCanonMethodTarget(CanonicalFormKind.Specific);
parent\parent\Common\Compiler\DependencyAnalysis\ShadowMethodNode.cs (1)
48Debug.Assert(canonicalMethod.Method == method.GetCanonMethodTarget(CanonicalFormKind.Specific));
parent\parent\Common\Compiler\DevirtualizationManager.cs (6)
74if (declMethod.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any) || implType.IsCanonicalSubtype(CanonicalFormKind.Any)) 78DefType canonicalInterfaceType = (DefType)declMethod.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific); 83runtimeInterface.ConvertToCanonForm(CanonicalFormKind.Specific) == canonicalInterfaceType) 185if ((checkType == null) || (checkType.ConvertToCanonForm(CanonicalFormKind.Specific) != declMethod.OwningType.ConvertToCanonForm(CanonicalFormKind.Specific)))
parent\parent\Common\Compiler\TypeExtensions.cs (19)
106public static bool IsCanonicalDefinitionType(this TypeDesc type, CanonicalFormKind kind) 164if (!type1.IsCanonicalSubtype(CanonicalFormKind.Any) && !type2.IsCanonicalSubtype(CanonicalFormKind.Any)) 179if (type1.IsCanonicalDefinitionType(CanonicalFormKind.Any) || type2.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 182if (type1.IsCanonicalDefinitionType(CanonicalFormKind.Universal) || type2.IsCanonicalDefinitionType(CanonicalFormKind.Universal)) 426interfaceMethod = interfaceMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 440if (arg.IsCanonicalSubtype(CanonicalFormKind.Any)) 448interfaceType.IsCanonicalSubtype(CanonicalFormKind.Any)) 457TypeDesc interfaceTypeCanonical = interfaceType.ConvertToCanonForm(CanonicalFormKind.Specific); 504TypeDesc canonType = constrainedType.ConvertToCanonForm(CanonicalFormKind.Specific); 523if (potentialInterfaceType.ConvertToCanonForm(CanonicalFormKind.Specific) == 524interfaceType.ConvertToCanonForm(CanonicalFormKind.Specific)) 559if (!interfaceType.IsCanonicalSubtype(CanonicalFormKind.Any) && 561!constrainedType.IsCanonicalSubtype(CanonicalFormKind.Any) && 638if (method.IsCanonicalMethod(CanonicalFormKind.Any) 680if (thisType.IsCanonicalSubtype(CanonicalFormKind.Any)) 681return thisType.ConvertToCanonForm(CanonicalFormKind.Specific);
parent\parent\Common\JitInterface\CorInfoImpl.cs (20)
1506if (objType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 1550MethodDesc impl = originalImpl.GetCanonMethodTarget(CanonicalFormKind.Specific); 1646if (originalImpl.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any)) 1939owningMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 2014if (field.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any)) 2024if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 2032((TypeDesc)methodIL.GetMethodILScopeDefinition().GetObject((int)token)).IsCanonicalDefinitionType(CanonicalFormKind.Any)); 2340return HandleToObject(cls).IsCanonicalSubtype(CanonicalFormKind.Any); 2390if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 3013if (typeToInit.IsCanonicalSubtype(CanonicalFormKind.Any)) 3144else if (!fromType.IsCanonicalSubtype(CanonicalFormKind.Any) && !toType.IsCanonicalSubtype(CanonicalFormKind.Any)) 3152else if (fromType.IsCanonicalSubtype(CanonicalFormKind.Any) && !toType.IsCanonicalSubtype(CanonicalFormKind.Any)) 3181else if (fromType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 3232return type1.IsCanonicalSubtype(CanonicalFormKind.Any) && !type2.IsCanonicalSubtype(CanonicalFormKind.Any); 3300if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 3788MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 3854MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific);
parent\parent\Common\JitInterface\UnboxingMethodDesc.cs (1)
31public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\IL\Stubs\ComparerIntrinsics.cs (8)
61if (comparedType.IsCanonicalSubtype(CanonicalFormKind.Any)) 84if (context.IsCanonicalDefinitionType(type, CanonicalFormKind.Any) || 135Debug.Assert(type.IsCanonicalSubtype(CanonicalFormKind.Any)); 148if (context.IsCanonicalDefinitionType(type, CanonicalFormKind.Universal)) 179Debug.Assert(context.IsCanonicalDefinitionType(nullableType, CanonicalFormKind.Universal)); 215if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 218if (implementedInterface.ConvertToCanonForm(CanonicalFormKind.Specific) != 219interfaceType.MakeInstantiatedType(type).ConvertToCanonForm(CanonicalFormKind.Specific))
parent\parent\Common\TypeSystem\IL\Stubs\RuntimeHelpersIntrinsics.cs (1)
29if (elementType.IsCanonicalSubtype(CanonicalFormKind.Universal))
ILCompiler.RyuJit (45)
Compiler\DependencyAnalysis\MethodCodeNode.cs (1)
38Debug.Assert(method.GetCanonMethodTarget(CanonicalFormKind.Specific) == method);
Compiler\DependencyAnalysis\RyuJitNodeFactory.cs (1)
60if (!Target.IsWasm && method.IsCanonicalMethod(CanonicalFormKind.Specific) && !method.HasInstantiation)
Compiler\RyuJitCompilation.cs (1)
151if (method.IsCanonicalMethod(CanonicalFormKind.Any)
JitInterface\CorInfoImpl.RyuJit.cs (21)
357if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 370Debug.Assert(typeToInitialize.IsCanonicalSubtype(CanonicalFormKind.Any)); 420if (directMethod != null && !directMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 458Debug.Assert(expectedTargetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific) == targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)); 1083if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 1139Debug.Assert(!type.IsString && !type.IsArray && !type.IsCanonicalDefinitionType(CanonicalFormKind.Any)); 1310pResult->exactContextNeedsRuntimeLookup = exactType.IsCanonicalSubtype(CanonicalFormKind.Any); 1364&& (!pResult->exactContextNeedsRuntimeLookup || !targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific).RequiresInstMethodDescArg())) 1423Debug.Assert(lookupMethod.GetCanonMethodTarget(CanonicalFormKind.Specific) == targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific)); 1438else if (directCall && !allowInstParam && targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific).RequiresInstArg()) 1523targetMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1533targetMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1605targetOfLookup.GetCanonMethodTarget(CanonicalFormKind.Specific)); 1696targetMethod = targetMethod.GetCanonMethodTarget(CanonicalFormKind.Specific); 1895methodDesc = methodDesc.GetCanonMethodTarget(CanonicalFormKind.Specific); 2148else if (field.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any)) 2288TypeDesc canonType = type.ConvertToCanonForm(CanonicalFormKind.Specific); 2330Debug.Assert(!implClass.IsCanonicalSubtype(CanonicalFormKind.Any)); 2451if (type.IsCanonicalSubtype(CanonicalFormKind.Any))
parent\parent\Common\JitInterface\CorInfoImpl.cs (20)
1506if (objType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 1550MethodDesc impl = originalImpl.GetCanonMethodTarget(CanonicalFormKind.Specific); 1646if (originalImpl.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any)) 1939owningMethod.IsCanonicalMethod(CanonicalFormKind.Any)) 2014if (field.OwningType.IsCanonicalSubtype(CanonicalFormKind.Any)) 2024if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 2032((TypeDesc)methodIL.GetMethodILScopeDefinition().GetObject((int)token)).IsCanonicalDefinitionType(CanonicalFormKind.Any)); 2340return HandleToObject(cls).IsCanonicalSubtype(CanonicalFormKind.Any); 2390if (type.IsCanonicalSubtype(CanonicalFormKind.Any)) 3013if (typeToInit.IsCanonicalSubtype(CanonicalFormKind.Any)) 3144else if (!fromType.IsCanonicalSubtype(CanonicalFormKind.Any) && !toType.IsCanonicalSubtype(CanonicalFormKind.Any)) 3152else if (fromType.IsCanonicalSubtype(CanonicalFormKind.Any) && !toType.IsCanonicalSubtype(CanonicalFormKind.Any)) 3181else if (fromType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 3232return type1.IsCanonicalSubtype(CanonicalFormKind.Any) && !type2.IsCanonicalSubtype(CanonicalFormKind.Any); 3300if (type.IsCanonicalDefinitionType(CanonicalFormKind.Any)) 3788MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific); 3854MethodDesc targetMethod = runtimeDeterminedResult.GetCanonMethodTarget(CanonicalFormKind.Specific);
parent\parent\Common\JitInterface\UnboxingMethodDesc.cs (1)
31public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
ILCompiler.TypeSystem (114)
parent\parent\Common\TypeSystem\Canon\ArrayType.Canon.cs (3)
9protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind) 26public override bool IsCanonicalMethod(CanonicalFormKind policy) 31public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\ByRefType.Canon.cs (1)
9protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\CanonTypes.cs (9)
103public override bool IsCanonicalSubtype(CanonicalFormKind policy) 105return policy == CanonicalFormKind.Specific || 106policy == CanonicalFormKind.Any; 109protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind) 111Debug.Assert(kind == CanonicalFormKind.Specific); 188public override bool IsCanonicalSubtype(CanonicalFormKind policy) 190return policy == CanonicalFormKind.Universal || 191policy == CanonicalFormKind.Any; 194protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\CastingHelper.Canon.cs (8)
17if (context.IsCanonicalDefinitionType(otherType, CanonicalFormKind.Universal)) 20if (context.IsCanonicalDefinitionType(otherType, CanonicalFormKind.Specific)) 34if (context.IsCanonicalDefinitionType(otherType, CanonicalFormKind.Universal)) 37if (context.IsCanonicalDefinitionType(otherType, CanonicalFormKind.Specific)) 38return type.IsGCPointer || context.IsCanonicalDefinitionType(type, CanonicalFormKind.Any); 40if (context.IsCanonicalDefinitionType(type, CanonicalFormKind.Universal)) 43if (context.IsCanonicalDefinitionType(type, CanonicalFormKind.Specific)) 44return otherType.IsGCPointer || context.IsCanonicalDefinitionType(otherType, CanonicalFormKind.Any);
parent\parent\Common\TypeSystem\Canon\DefType.Canon.cs (1)
9protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\FunctionPointerType.Canon.cs (2)
9public override bool IsCanonicalSubtype(CanonicalFormKind policy) 21protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\GenericParameterDesc.Canon.cs (2)
11public sealed override bool IsCanonicalSubtype(CanonicalFormKind policy) 17protected sealed override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\InstantiatedMethod.Canon.cs (11)
21public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind) 43if ((kind == CanonicalFormKind.Specific) && 44canonicalMethodResult.IsCanonicalMethod(CanonicalFormKind.Universal)) 46canonicalMethodResult = (InstantiatedMethod)canonicalMethodResult.GetCanonMethodTarget(CanonicalFormKind.Universal); 55private InstantiatedMethod GetCachedCanonValue(CanonicalFormKind kind) 59case CanonicalFormKind.Specific: 62case CanonicalFormKind.Universal: 71private void SetCachedCanonValue(CanonicalFormKind kind, InstantiatedMethod value) 75case CanonicalFormKind.Specific: 80case CanonicalFormKind.Universal: 95public override bool IsCanonicalMethod(CanonicalFormKind policy)
parent\parent\Common\TypeSystem\Canon\InstantiatedType.Canon.cs (2)
13public override bool IsCanonicalSubtype(CanonicalFormKind policy) 26protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\MetadataType.Canon.cs (1)
9public override bool IsCanonicalSubtype(CanonicalFormKind policy)
parent\parent\Common\TypeSystem\Canon\MethodDelegator.Canon.cs (2)
8public override bool IsCanonicalMethod(CanonicalFormKind policy) 14public abstract override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind);
parent\parent\Common\TypeSystem\Canon\MethodDesc.Canon.cs (2)
9public virtual bool IsCanonicalMethod(CanonicalFormKind policy) 17public virtual MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\MethodForInstantiatedType.Canon.cs (2)
9public override bool IsCanonicalMethod(CanonicalFormKind policy) 14public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\ParameterizedType.Canon.cs (1)
9public sealed override bool IsCanonicalSubtype(CanonicalFormKind policy)
parent\parent\Common\TypeSystem\Canon\PointerType.Canon.cs (1)
9protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\SignatureVariable.Canon.cs (4)
11public override bool IsCanonicalSubtype(CanonicalFormKind policy) 17protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind) 27public override bool IsCanonicalSubtype(CanonicalFormKind policy) 33protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\Canon\StandardCanonicalizationAlgorithm.cs (14)
20public static Instantiation ConvertInstantiationToCanonForm(Instantiation instantiation, CanonicalFormKind kind, out bool changed) 24CanonicalFormKind currentKind = kind; 25CanonicalFormKind startLoopKind; 75public static TypeDesc ConvertToCanon(TypeDesc typeToConvert, CanonicalFormKind kind) 82private static TypeDesc ConvertToCanon(TypeDesc typeToConvert, ref CanonicalFormKind kind) 85if (kind == CanonicalFormKind.Universal) 89else if (kind == CanonicalFormKind.Specific) 93kind = CanonicalFormKind.Universal; 106TypeDesc convertedType = typeToConvert.ConvertToCanonForm(CanonicalFormKind.Specific); 107if (convertedType.IsCanonicalSubtype(CanonicalFormKind.Universal)) 109kind = CanonicalFormKind.Universal; 123TypeDesc convertedType = typeToConvert.ConvertToCanonForm(CanonicalFormKind.Specific); 124if (convertedType.IsCanonicalSubtype(CanonicalFormKind.Universal)) 126kind = CanonicalFormKind.Universal;
parent\parent\Common\TypeSystem\Canon\TypeDesc.Canon.cs (11)
18private TypeDesc GetCachedCanonValue(CanonicalFormKind kind) 22case CanonicalFormKind.Specific: 25case CanonicalFormKind.Universal: 34private void SetCachedCanonValue(CanonicalFormKind kind, TypeDesc value) 38case CanonicalFormKind.Specific: 43case CanonicalFormKind.Universal: 57public TypeDesc ConvertToCanonForm(CanonicalFormKind kind) 72protected abstract TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind); 77public abstract bool IsCanonicalSubtype(CanonicalFormKind policy); 88if (Context.IsCanonicalDefinitionType(this, CanonicalFormKind.Any)) 91return this.IsCanonicalSubtype(CanonicalFormKind.Any);
parent\parent\Common\TypeSystem\Canon\TypeSystemConstraintsHelpers.Canon.cs (6)
16GenericConstraints.ReferenceTypeConstraint => context.IsCanonicalDefinitionType(type, CanonicalFormKind.Any), 17GenericConstraints.DefaultConstructorConstraint => context.IsCanonicalDefinitionType(type, CanonicalFormKind.Any), 18GenericConstraints.NotNullableValueTypeConstraint => context.IsCanonicalDefinitionType(type, CanonicalFormKind.Universal), 35if (context.IsCanonicalDefinitionType(instantiationParam, CanonicalFormKind.Any)) 40if (context.IsCanonicalDefinitionType(instantiatedConstraintType, CanonicalFormKind.Universal)) 42if (context.IsCanonicalDefinitionType(instantiatedConstraintType, CanonicalFormKind.Specific))
parent\parent\Common\TypeSystem\Canon\TypeSystemContext.Canon.cs (7)
49public bool IsCanonicalDefinitionType(TypeDesc type, CanonicalFormKind kind) 51if (kind == CanonicalFormKind.Any) 55else if (kind == CanonicalFormKind.Specific) 61Debug.Assert(kind == CanonicalFormKind.Universal); 69public Instantiation ConvertInstantiationToCanonForm(Instantiation instantiation, CanonicalFormKind kind) 79protected internal virtual Instantiation ConvertInstantiationToCanonForm(Instantiation instantiation, CanonicalFormKind kind, out bool changed) 88protected internal virtual TypeDesc ConvertToCanon(TypeDesc typeToConvert, CanonicalFormKind kind)
parent\parent\Common\TypeSystem\RuntimeDetermined\MethodDesc.RuntimeDetermined.cs (1)
68return IsCanonicalMethod(CanonicalFormKind.Any);
parent\parent\Common\TypeSystem\RuntimeDetermined\MethodForRuntimeDeterminedType.cs (2)
51public override bool IsCanonicalMethod(CanonicalFormKind policy) 58public override MethodDesc GetCanonMethodTarget(CanonicalFormKind kind)
parent\parent\Common\TypeSystem\RuntimeDetermined\RuntimeDeterminedCanonicalizationAlgorithm.cs (15)
16public static Instantiation ConvertInstantiationToCanonForm(Instantiation instantiation, CanonicalFormKind kind, out bool changed) 20CanonicalFormKind currentKind = kind; 21CanonicalFormKind startLoopKind; 65public static TypeDesc ConvertToCanon(TypeDesc typeToConvert, CanonicalFormKind kind) 72public static TypeDesc ConvertToCanon(TypeDesc typeToConvert, ref CanonicalFormKind kind) 75if (kind == CanonicalFormKind.Universal) 79else if (kind == CanonicalFormKind.Specific) 83kind = CanonicalFormKind.Universal; 98TypeDesc canonicalType = typeToConvert.ConvertToCanonForm(CanonicalFormKind.Specific); 102if (canonicalType.IsCanonicalSubtype(CanonicalFormKind.Universal)) 104kind = CanonicalFormKind.Universal; 120kind = CanonicalFormKind.Universal; 134if (typeToConvert.IsCanonicalSubtype(CanonicalFormKind.Universal)) 136kind = CanonicalFormKind.Universal; 140return typeToConvert.ConvertToCanonForm(CanonicalFormKind.Specific);
parent\parent\Common\TypeSystem\RuntimeDetermined\RuntimeDeterminedType.cs (2)
184protected override TypeDesc ConvertToCanonFormImpl(CanonicalFormKind kind) 189public override bool IsCanonicalSubtype(CanonicalFormKind policy)
parent\parent\Common\TypeSystem\RuntimeDetermined\RuntimeDeterminedTypeUtilities.cs (3)
16CanonicalFormKind currentPolicy = CanonicalFormKind.Specific; 17CanonicalFormKind startLoopPolicy;
parent\parent\Common\TypeSystem\RuntimeDetermined\TypeSystemContext.RuntimeDetermined.cs (1)
61protected internal virtual TypeDesc ConvertToCanon(TypeDesc typeToConvert, ref CanonicalFormKind kind)