public static void Describe(this IList <IConstantDescriptor> descriptors, ConstantBuilder builder) { for (var i = 0; i < descriptors.Count; i++) { descriptors[i].Describe(builder); } }
/// <inheritdoc /> public virtual void Describe(ConstantBuilder builder) { switch (builder.Source) { case ValueTuple <Type, FieldInfo> constantSource: DescribeConstantInfo(builder, constantSource.Item1, constantSource.Item2); break; } }
/// <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()); }
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; } }