Example #1
0
 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));
 }
Example #2
0
 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));
 }
Example #3
0
 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));
 }
Example #4
0
 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));
 }
Example #5
0
 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)));
 }