public AttributeSymbolInfo(AttributeData attributeData) { AttributeData = attributeData; AttributeType = new TypeSymbolInfo(attributeData.AttributeClass); AttributeConstructor = attributeData.AttributeConstructor == null ? null : new MethodSymbolInfo(attributeData.AttributeConstructor); ConstructorArguments = EnumerableExtensions.CreateLazyImmutableArray(() => AttributeData.ConstructorArguments.Select(AotSymbolExtensions.ConvertToStructure)); NamedArguments = EnumerableExtensions.CreateLazyImmutableArray(() => AttributeData.NamedArguments.Select(AotSymbolExtensions.ConvertToStructure)); }
public ParameterSymbolInfo(IParameterSymbol p) { RealParameter = p; Type = new TypeSymbolInfo(p.Type); RefKind = p.RefKind.ConvertToStructure(); Attributes = EnumerableExtensions.CreateLazyImmutableArray(() => RealParameter.GetAttributes() .Select(AotSymbolExtensions.ConvertToStructure) .Where(i => i != null)); }
public FieldSymbolInfo(IFieldSymbol f) { ContainingType = new TypeSymbolInfo(f.ContainingType); RealField = f; FieldType = new TypeSymbolInfo(f.Type); Accessibility = f.DeclaredAccessibility.ConvertToStructure(); Attributes = EnumerableExtensions.CreateLazyImmutableArray(() => RealField.GetAttributes() .Select(AotSymbolExtensions.ConvertToStructure) .Where(i => i != null)); }
public PropertySymbolInfo(IPropertySymbol p) { ContainingType = new TypeSymbolInfo(p.ContainingType); RealProperty = p; Type = new TypeSymbolInfo(p.Type); Accessibility = p.DeclaredAccessibility.ConvertToStructure(); GetMethod = CanRead ? new MethodSymbolInfo(p.GetMethod) : null; SetMethod = CanWrite ? new MethodSymbolInfo(p.SetMethod) : null; Parameters = EnumerableExtensions.CreateLazyImmutableArray <IParameterSymbolInfo>(() => RealProperty.Parameters.Select(i => new ParameterSymbolInfo(i))); Attributes = EnumerableExtensions.CreateLazyImmutableArray(() => RealProperty.GetAttributes() .Select(AotSymbolExtensions.ConvertToStructure) .Where(i => i != null)); }
public MethodSymbolInfo(IMethodSymbol m) { ContainingType = new TypeSymbolInfo(m.ContainingType); RealMethod = m; Origin = m; Accessibility = m.DeclaredAccessibility.ConvertToStructure(); ReturnType = new TypeSymbolInfo(m.ReturnType); MethodKind = m.MethodKind.ConvertToStructure(); var(isAsync, hasReturnValue) = this.GetMethodExtensionInfo(); IsAsync = isAsync; HasReturnValue = hasReturnValue; Attributes = EnumerableExtensions.CreateLazyImmutableArray(() => RealMethod.GetAttributes() .Select(AotSymbolExtensions.ConvertToStructure) .Where(i => i != null)); TypeParameters = EnumerableExtensions.CreateLazyImmutableArray <ITypeParameterSymbolInfo>(() => RealMethod.TypeParameters.Select(i => new TypeParameterSymbolInfo(i))); Parameters = EnumerableExtensions.CreateLazyImmutableArray <IParameterSymbolInfo>(() => RealMethod.Parameters.Select(i => new ParameterSymbolInfo(i))); }