コード例 #1
0
 public override void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
     if (Process(specializedFieldDefinition))
     {
         visitor.Visit(specializedFieldDefinition);
     }
     base.Visit(specializedFieldDefinition);
 }
コード例 #2
0
        /// <summary>
        /// Get the unspecialized version of the given field definition, if it is specialized. Or the field
        /// definition itself, otherwise.
        /// </summary>
        /// <param name="fieldDefinition"></param>
        /// <returns></returns>
        internal static IFieldDefinition UnspecializedFieldDefinition(IFieldDefinition fieldDefinition)
        {
            ISpecializedFieldDefinition specializedFieldDefinition = fieldDefinition as ISpecializedFieldDefinition;

            if (specializedFieldDefinition != null)
            {
                return(specializedFieldDefinition.UnspecializedVersion);
            }
            return(fieldDefinition);
        }
コード例 #3
0
 public virtual void onMetadataElement(ISpecializedFieldDefinition specializedFieldDefinition) { }
コード例 #4
0
ファイル: Validator.cs プロジェクト: rasiths/visual-profiler
 /// <summary>
 /// Performs some computation with the given specialized field definition.
 /// </summary>
 public void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
     this.Visit((IFieldDefinition)specializedFieldDefinition);
 }
コード例 #5
0
ファイル: Visitors.cs プロジェクト: rasiths/visual-profiler
 public void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
     //references are dispatched in such a way that they never get here.
     //thus, assume that we are traversing a generic type instance.
     this.traverser.Traverse((IFieldDefinition)specializedFieldDefinition);
 }
コード例 #6
0
ファイル: Visitors.cs プロジェクト: rasiths/visual-profiler
 /// <summary>
 /// Performs some computation with the given specialized field definition.
 /// </summary>
 public virtual void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
 }
コード例 #7
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 public void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
     throw new NotImplementedException();
 }
コード例 #8
0
 public virtual void onMetadataElement(ISpecializedFieldDefinition specializedFieldDefinition)
 {
 }
コード例 #9
0
 /// <summary>
 /// Performs some computation with the given specialized field definition.
 /// </summary>
 public virtual void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
 }
コード例 #10
0
        public static ITypeMemberReference CanonicalizeMemberReference(ITypeMemberReference member)
        {
            if (null == member)
            {
                return(null);
            }

            if (member == null || member == Dummy.Method)
            {
                throw new Exception("Can't resolve member");
            }

            // function pointers don't have declaring types and they don't
            // really fit our model, so we ignore them.
            if (null == member.ContainingType)
            {
                return(null);
            }

            //
            // first canonicalize the method...
            //
            IGenericMethodInstanceReference genMeth = member as IGenericMethodInstanceReference;

            if ((genMeth != null))
            {
                member = genMeth.GenericMethod;
            }

            ISpecializedMethodReference    specializedMethodRef   = member as ISpecializedMethodReference;
            ISpecializedFieldReference     specializedFieldRef    = member as ISpecializedFieldReference;
            ISpecializedPropertyDefinition specializedPropertyDef = member as ISpecializedPropertyDefinition;
            ISpecializedEventDefinition    specializedEventDef    = member as ISpecializedEventDefinition;
            ISpecializedMethodDefinition   specializedMethodDef   = member as ISpecializedMethodDefinition;
            ISpecializedFieldDefinition    specializedFieldDef    = member as ISpecializedFieldDefinition;

            if (specializedMethodRef != null)
            {
                member = specializedMethodRef.UnspecializedVersion;
            }
            else if (specializedFieldRef != null)
            {
                member = specializedFieldRef.UnspecializedVersion;
            }
            else if (specializedPropertyDef != null)
            {
                member = specializedPropertyDef.UnspecializedVersion;
            }
            else if (specializedEventDef != null)
            {
                member = specializedEventDef.UnspecializedVersion;
            }
            else if (specializedMethodDef != null)
            {
                member = specializedMethodDef.UnspecializedVersion;
            }
            else if (specializedFieldDef != null)
            {
                member = specializedFieldDef.UnspecializedVersion;
            }

            if (member == null)
            {
                throw new Exception("Can't canonicalize some member.");
            }
            return(member);
        }
コード例 #11
0
 public override void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
     allElements.Add(new InvokInfo(Traverser, "ISpecializedFieldDefinition", specializedFieldDefinition));
 }
コード例 #12
0
 public override void Visit(ISpecializedFieldDefinition specializedFieldDefinition)
 {
     if(Process(specializedFieldDefinition)){visitor.Visit(specializedFieldDefinition);}
     base.Visit(specializedFieldDefinition);
 }