Пример #1
0
 public override void AppendMangledName(NameMangler nameMangler, Utf8StringBuilder sb)
 {
     sb.Append(nameMangler.CompilationUnitPrefix);
     sb.Append("GenericLookupSignature(");
     sb.Append(_runtimeLookupKind.ToString());
     sb.Append(" / ");
     sb.Append(_fixupKind.ToString());
     sb.Append(": ");
     if (_typeArgument != null)
     {
         RuntimeDeterminedTypeHelper.WriteTo(_typeArgument, sb);
     }
     else if (_methodArgument != null)
     {
         RuntimeDeterminedTypeHelper.WriteTo(_methodArgument.Method, sb);
         if (!_methodArgument.Token.IsNull)
         {
             sb.Append(" [");
             sb.Append(_methodArgument.Token.MetadataReader.GetString(_methodArgument.Token.MetadataReader.GetAssemblyDefinition().Name));
             sb.Append(":");;
             sb.Append(((uint)_methodArgument.Token.Token).ToString("X8"));
             sb.Append("]");
         }
     }
     else
     {
         throw new NotImplementedException();
     }
     sb.Append(" (");
     sb.Append(_methodContext.ToString());
     sb.Append(")");
 }
Пример #2
0
 public override int GetHashCode()
 {
     return(unchecked (((int)LookupKind << 24) +
                       (int)FixupKind +
                       (TypeArgument != null ? 31 * RuntimeDeterminedTypeHelper.GetHashCode(TypeArgument) : 0) +
                       (MethodArgument != null ? 31 * RuntimeDeterminedTypeHelper.GetHashCode(MethodArgument.Method) : 0) +
                       97 * (ContextType?.GetHashCode() ?? 0)));
 }
Пример #3
0
 public bool Equals(GenericLookupKey other)
 {
     return(LookupKind == other.LookupKind &&
            FixupKind == other.FixupKind &&
            RuntimeDeterminedTypeHelper.Equals(TypeArgument, other.TypeArgument) &&
            RuntimeDeterminedTypeHelper.Equals(MethodArgument?.Method ?? null, other.MethodArgument?.Method ?? null) &&
            ContextType == other.ContextType);
 }
Пример #4
0
 public bool Equals(GenericLookupKey other)
 {
     return(LookupKind == other.LookupKind &&
            FixupKind == other.FixupKind &&
            RuntimeDeterminedTypeHelper.Equals(TypeArgument, other.TypeArgument) &&
            RuntimeDeterminedTypeHelper.Equals(MethodArgument, other.MethodArgument) &&
            RuntimeDeterminedTypeHelper.Equals(FieldArgument, other.FieldArgument) &&
            MethodContext.Equals(other.MethodContext));
 }