public override void Visit(ISpecializedFieldDefinition specializedFieldDefinition) { if (Process(specializedFieldDefinition)) { visitor.Visit(specializedFieldDefinition); } base.Visit(specializedFieldDefinition); }
/// <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); }
public virtual void onMetadataElement(ISpecializedFieldDefinition specializedFieldDefinition) { }
/// <summary> /// Performs some computation with the given specialized field definition. /// </summary> public void Visit(ISpecializedFieldDefinition specializedFieldDefinition) { this.Visit((IFieldDefinition)specializedFieldDefinition); }
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); }
/// <summary> /// Performs some computation with the given specialized field definition. /// </summary> public virtual void Visit(ISpecializedFieldDefinition specializedFieldDefinition) { }
public void Visit(ISpecializedFieldDefinition specializedFieldDefinition) { throw new NotImplementedException(); }
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); }
public override void Visit(ISpecializedFieldDefinition specializedFieldDefinition) { allElements.Add(new InvokInfo(Traverser, "ISpecializedFieldDefinition", specializedFieldDefinition)); }
public override void Visit(ISpecializedFieldDefinition specializedFieldDefinition) { if(Process(specializedFieldDefinition)){visitor.Visit(specializedFieldDefinition);} base.Visit(specializedFieldDefinition); }