Example #1
0
 public IGeneralGenericSignatureMemberUniqueIdentifier GetIdentifier(IIntermediateMethodMember member)
 {
     if (member is IIntermediateClassMethodMember || member is IIntermediateStructMethodMember)
     {
         var internalHelper = member as _IIntermediateMethodSignatureMember;
         var classMethod    = member as IIntermediateClassMethodMember;
         if (classMethod != null)
         {
             var firstImpl = classMethod.Implementations.FirstOrDefault();
             if (firstImpl != null)
             {
                 return(GetIdentifierInternal(member, internalHelper, firstImpl));
             }
         }
         else
         {
             var structMethod = member as IIntermediateStructMethodMember;
             var firstImpl    = structMethod.Implementations.FirstOrDefault();
             if (firstImpl != null)
             {
                 return(GetIdentifierInternal(member, internalHelper, firstImpl));
             }
         }
     }
     return(IntermediateGateway.DefaultUniqueIdentifierService.GetIdentifier(member));
 }
Example #2
0
 public void DefineDeclaration(IIntermediateMethodMember declaration)
 {
 }
Example #3
0
 public void ReferenceDeclaration(IIntermediateMethodMember declaration)
 {
 }
Example #4
0
            public string Visit <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>(IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent> method, IntermediateNameRequestDetails context)
                where TMethod : Abstract.Members.IMethodMember <TMethod, TMethodParent>
                where TIntermediateMethod : IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>, TMethod
                where TMethodParent : Abstract.IMethodParent <TMethod, TMethodParent>
                where TIntermediateMethodParent : IIntermediateMethodParent <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>, TMethodParent
            {
                string name = null;

                switch (context)
                {
                case IntermediateNameRequestDetails.TargetFileName:
                    if (!(method.Parent is IIntermediateType))
                    {
                        return(null);
                    }
                    this.fileNameLookup.TryGetValue(((IIntermediateType)method.Parent).Assembly, out name);
                    if (this.HtmlContext)
                    {
                        name = string.Format("{0}#fnc{1:X8}", name, method.GetHashCode());
                    }
                    break;

                case IntermediateNameRequestDetails.SourceFileName:
                    if (!(method.Parent is IIntermediateType))
                    {
                        return(null);
                    }
                    name = ((IIntermediateType)method.Parent).Assembly.FileName;
                    break;

                case IntermediateNameRequestDetails.DisplayName:
                    name = method.Name;
                    break;

                case IntermediateNameRequestDetails.ReferenceName:
                    if (this.HtmlContext)
                    {
                        name = string.Format("fnc{0:X8}", method.GetHashCode());
                    }
                    break;
                }
                return(name);
            }
Example #5
0
 void IIntermediateMemberVisitor.Visit <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>(IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent> intermediateMember)
 {
     this.Translate(intermediateMember);
 }
 public bool MethodsAreEquivalent(IIntermediateMethodMember methodA, IIntermediateMethodMember methodB)
 {
     return(this.Visit((IEnumerable <IStatement>)methodA, methodB));
 }
Example #7
0
 public TestLinkerResult Visit <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>(IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent> method, ICompilationContext context)
     where TMethod : IMethodMember <TMethod, TMethodParent>
     where TIntermediateMethod : IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>, TMethod
     where TMethodParent : IMethodParent <TMethod, TMethodParent>
     where TIntermediateMethodParent : IIntermediateMethodParent <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>, TMethodParent
 {
     throw new NotImplementedException();
 }
Example #8
0
 public void DefineDeclaration(IIntermediateMethodMember declaration)
 {
     this.DefineDeclaration((IIntermediateMember)declaration);
 }
Example #9
0
 public IGeneralGenericSignatureMemberUniqueIdentifier GetIdentifier(IIntermediateMethodMember member)
 {
     return(GetIdentifier((IIntermediateMethodSignatureMember)(member)));
 }
Example #10
0
 public abstract void Translate <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>(IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent> intermediateMember)
     where TMethod :
 IMethodMember <TMethod, TMethodParent>
     where TIntermediateMethod :
 IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>,
 TMethod
     where TMethodParent :
 IMethodParent <TMethod, TMethodParent>
     where TIntermediateMethodParent :
 IIntermediateMethodParent <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>,
 TMethodParent;
Example #11
0
 public void ReferenceDeclaration(IIntermediateMethodMember declaration)
 {
     this.Formatter.ReferenceDeclaration(declaration);
 }
Example #12
0
 public void DefineDeclaration(IIntermediateMethodMember declaration)
 {
     this.Formatter.DefineDeclaration(declaration);
 }
Example #13
0
 private static IGeneralGenericSignatureMemberUniqueIdentifier GetIdentifierInternal(IIntermediateMethodMember member, _IIntermediateMethodSignatureMember internalHelper, IType firstImpl)
 {
     if (internalHelper == null)
     {
         return(TypeSystemIdentifiers.GetGenericSignatureIdentifier(member.Name, member.TypeParameters.Count, string.Format("{0}{1}", firstImpl.FullName, member.UserSpecificQualifier), member.Parameters.ParameterTypes.ToArray()));
     }
     else if (internalHelper.IsDisposed)
     {
         throw new InvalidOperationException(Utilities.Properties.Resources.ObjectStateThrowMessage);
     }
     else if (internalHelper.AreTypeParametersInitialized)
     {
         if (internalHelper.AreParametersInitialized)
         {
             return(TypeSystemIdentifiers.GetGenericSignatureIdentifier(member.Name, member.TypeParameters.Count, string.Format("{0}{1}", firstImpl.FullName, member.UserSpecificQualifier), member.Parameters.ParameterTypes.ToArray()));
         }
         else
         {
             return(TypeSystemIdentifiers.GetGenericSignatureIdentifier(member.Name, member.TypeParameters.Count, string.Format("{0}{1}", firstImpl.FullName, member.UserSpecificQualifier), new IType[0]));
         }
     }
     else if (internalHelper.AreParametersInitialized)
     {
         return(TypeSystemIdentifiers.GetGenericSignatureIdentifier(member.Name, 0, string.Format("{0}{1}", firstImpl.FullName, member.UserSpecificQualifier), member.Parameters.ParameterTypes.ToArray()));
     }
     else
     {
         return(TypeSystemIdentifiers.GetGenericSignatureIdentifier(member.Name, 0, string.Format("{0}{1}", firstImpl.FullName, member.UserSpecificQualifier), new IType[0]));
     }
 }
Example #14
0
 public TransformationKind Visit <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>(IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent> method, ITransformationContext context)
     where TMethod : IMethodMember <TMethod, TMethodParent>
     where TIntermediateMethod : IIntermediateMethodMember <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>, TMethod
     where TMethodParent : IMethodParent <TMethod, TMethodParent>
     where TIntermediateMethodParent : IIntermediateMethodParent <TMethod, TIntermediateMethod, TMethodParent, TIntermediateMethodParent>, TMethodParent
 {
     throw new NotImplementedException();
 }