public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
        {
            NewObjectFixupSignature otherNode = (NewObjectFixupSignature)other;

            return(comparer.Compare(_typeDesc, otherNode._typeDesc));
        }
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_sourceModule.CompareTo(((CopiedMetadataBlobNode)other)._sourceModule));
 }
示例#3
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_type, ((GCStaticsNode)other)._type));
 }
示例#4
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_targetMethod, ((RuntimeMethodHandleNode)other)._targetMethod));
 }
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_instructionSetsSupport.CompareTo(((ReadyToRunInstructionSetSupportSignature)other)._instructionSetsSupport));
 }
示例#6
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_type, ((TypeThreadStaticIndexNode)other)._type));
 }
示例#7
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_methodNode, ((MethodGCInfoNode)other)._methodNode));
 }
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_targetNode, ((EmbeddedPointerIndirectionNode <TTarget>)other)._targetNode));
 }
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(string.Compare(_blobName, ((ExternalReferencesTableNode)other)._blobName));
 }
示例#10
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_pdbName.CompareTo(((NativeDebugDirectoryEntryNode)other)._pdbName));
 }
示例#11
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_module.CompareTo(((DebugDirectoryEntryNode)other)._module));
 }
示例#12
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_importSection, ((GCRefMapNode)other)._importSection));
 }
示例#13
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_entryName.CompareTo(((PerfMapDebugDirectoryEntryNode)other)._entryName));
 }
示例#14
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(string.CompareOrdinal(_data, ((FrozenStringNode)other)._data));
 }
示例#15
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_import, ((SignatureEmbeddedPointerIndirectionNode)other)._import));
 }
示例#16
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_method, ((CopiedMethodILNode)other)._method));
 }
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return comparer.Compare(_method, ((MethodCodeNode)other)._method);
 }
示例#18
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_details.CompareToImpl(((GenericCompositionNode)other)._details, comparer));
 }
示例#19
0
        public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
        {
            MethodWithGCInfo otherNode = (MethodWithGCInfo)other;

            return(comparer.Compare(_method, otherNode._method));
        }
示例#20
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_name.CompareTo(((ImportSectionNode)other)._name));
 }
示例#21
0
        public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
        {
            GenericLookupSignature otherNode = (GenericLookupSignature)other;
            int result = _runtimeLookupKind.CompareTo(otherNode._runtimeLookupKind);

            if (result != 0)
            {
                return(result);
            }

            result = _fixupKind.CompareTo(otherNode._fixupKind);
            if (result != 0)
            {
                return(result);
            }

            if (_typeArgument != null || otherNode._typeArgument != null)
            {
                if (_typeArgument == null)
                {
                    return(-1);
                }
                if (otherNode._typeArgument == null)
                {
                    return(1);
                }

                result = comparer.Compare(_typeArgument, otherNode._typeArgument);
                if (result != 0)
                {
                    return(result);
                }
            }

            if (_fieldArgument != null || otherNode._fieldArgument != null)
            {
                if (_fieldArgument == null)
                {
                    return(-1);
                }
                if (otherNode._fieldArgument == null)
                {
                    return(1);
                }

                result = comparer.Compare(_fieldArgument, otherNode._fieldArgument);
                if (result != 0)
                {
                    return(result);
                }
            }

            if (_methodArgument != null || otherNode._methodArgument != null)
            {
                if (_methodArgument == null)
                {
                    return(-1);
                }
                if (otherNode._methodArgument == null)
                {
                    return(1);
                }

                result = _methodArgument.CompareTo(otherNode._methodArgument, comparer);
                if (result != 0)
                {
                    return(result);
                }
            }

            result = comparer.Compare(_methodContext.ContextMethod, otherNode._methodContext.ContextMethod);
            if (result != 0)
            {
                return(result);
            }

            return(_signatureContext.CompareTo(otherNode._signatureContext, comparer));
        }
        public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
        {
            var compare = _id.CompareTo(((ReadyToRunGenericHelperNode)other)._id);

            if (compare != 0)
            {
                return(compare);
            }

            if (_dictionaryOwner is MethodDesc)
            {
                if (((ReadyToRunGenericHelperNode)other)._dictionaryOwner is TypeDesc)
                {
                    return(-1);
                }

                compare = comparer.Compare((MethodDesc)_dictionaryOwner, (MethodDesc)((ReadyToRunGenericHelperNode)other)._dictionaryOwner);
            }
            else
            {
                if (((ReadyToRunGenericHelperNode)other)._dictionaryOwner is MethodDesc)
                {
                    return(1);
                }

                compare = comparer.Compare((TypeDesc)_dictionaryOwner, (TypeDesc)((ReadyToRunGenericHelperNode)other)._dictionaryOwner);
            }

            if (compare != 0)
            {
                return(compare);
            }

            switch (_id)
            {
            case ReadyToRunHelperId.TypeHandle:
            case ReadyToRunHelperId.GetGCStaticBase:
            case ReadyToRunHelperId.GetNonGCStaticBase:
            case ReadyToRunHelperId.GetThreadStaticBase:
            case ReadyToRunHelperId.DefaultConstructor:
            case ReadyToRunHelperId.ObjectAllocator:
                return(comparer.Compare((TypeDesc)_target, (TypeDesc)((ReadyToRunGenericHelperNode)other)._target));

            case ReadyToRunHelperId.MethodHandle:
            case ReadyToRunHelperId.MethodDictionary:
            case ReadyToRunHelperId.VirtualDispatchCell:
            case ReadyToRunHelperId.MethodEntry:
                return(comparer.Compare((MethodDesc)_target, (MethodDesc)((ReadyToRunGenericHelperNode)other)._target));

            case ReadyToRunHelperId.FieldHandle:
                return(comparer.Compare((FieldDesc)_target, (FieldDesc)((ReadyToRunGenericHelperNode)other)._target));

            case ReadyToRunHelperId.DelegateCtor:
                return(((DelegateCreationInfo)_target).CompareTo((DelegateCreationInfo)((ReadyToRunGenericHelperNode)other)._target, comparer));

            case ReadyToRunHelperId.ConstrainedDirectCall:
                return(((ConstrainedCallInfo)_target).CompareTo((ConstrainedCallInfo)((ReadyToRunGenericHelperNode)other)._target, comparer));

            default:
                throw new NotImplementedException();
            }
        }
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_type, ((InterfaceDispatchMapNode)other)._type));
 }
 // Note to implementers: the type of `other` is actually the same as the type of `this`.
 public virtual int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     throw new NotImplementedException("Multiple nodes of this type are not supported");
 }
        public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
        {
            StringImportSignature otherNode = (StringImportSignature)other;

            return(_token.CompareTo(otherNode._token));
        }
示例#26
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     throw new NotImplementedException();
 }
示例#27
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(_preinitializationInfo.Type, ((GCStaticsPreInitDataNode)other)._preinitializationInfo.Type));
 }
示例#28
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(_startSymbolMangledName.CompareTo(((EmbeddedDataContainerNode)other)._startSymbolMangledName));
 }
示例#29
0
 public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
 {
     return(comparer.Compare(((FrozenObjectNode)other)._field, _field));
 }
示例#30
0
        public override int CompareToImpl(ISortableNode other, CompilerComparer comparer)
        {
            MethodEntryPointTableNode otherMethodEntryPointTable = (MethodEntryPointTableNode)other;

            return(_module.Assembly.GetName().Name.CompareTo(otherMethodEntryPointTable._module.Assembly.GetName().Name));
        }