Example #1
0
 public static void Describe(this IList <IConstantDescriptor> descriptors, ConstantBuilder builder)
 {
     for (var i = 0; i < descriptors.Count; i++)
     {
         descriptors[i].Describe(builder);
     }
 }
Example #2
0
 /// <inheritdoc />
 public virtual void Describe(ConstantBuilder builder)
 {
     switch (builder.Source)
     {
     case ValueTuple <Type, FieldInfo> constantSource:
         DescribeConstantInfo(builder, constantSource.Item1, constantSource.Item2);
         break;
     }
 }
Example #3
0
        /// <inheritdoc/>
        protected override IConstant Bind(ConstDefinitionContext node, IDocument parent)
        {
            var builder = new ConstantBuilder()
                          .SetBinderProvider(this.binderProvider)
                          .SetNode(node)
                          .SetParent(parent)
                          .SetName(node.name?.Text);

            return(builder.Build());
        }
Example #4
0
        protected virtual void DescribeConstantInfo(ConstantBuilder builder, Type type, FieldInfo fieldInfo)
        {
            builder.Hint("net-kind", "constant");
            builder.Hint("net-assembly", fieldInfo.FieldType.Assembly.FullName);
            builder.Hint("net-type", fieldInfo.FieldType.FullName);

            if (fieldInfo.IsNonNullable())
            {
                builder.Type.IsNullable = false;
            }
        }