public override ImmutableArray <AttributeData> GetAttributes() { // [PharAttribute(PharFile)] if (_lazyPharAttribute == null) { var pharAttribute = new SynthesizedAttributeData( DeclaringCompilation.CoreMethods.Ctors.PharAttribute_string, ImmutableArray.Create(new TypedConstant(DeclaringCompilation.CoreTypes.String.Symbol, TypedConstantKind.Primitive, PharName)), ImmutableArray <KeyValuePair <string, TypedConstant> > .Empty); Interlocked.CompareExchange(ref _lazyPharAttribute, pharAttribute, null); } return(base.GetAttributes().Concat(_lazyPharAttribute)); }
public override ImmutableArray <AttributeData> GetAttributes() { // [ScriptAttribute(RelativeFilePath)] // TODO: LastWriteTime if (_lazyScriptAttribute == null) { var scriptAttribute = new SynthesizedAttributeData( DeclaringCompilation.CoreMethods.Ctors.ScriptAttribute_string, ImmutableArray.Create(new TypedConstant(DeclaringCompilation.CoreTypes.String.Symbol, TypedConstantKind.Primitive, this.RelativeFilePath)), ImmutableArray <KeyValuePair <string, TypedConstant> > .Empty); Interlocked.CompareExchange(ref _lazyScriptAttribute, scriptAttribute, null); } // return(ImmutableArray.Create <AttributeData>(_lazyScriptAttribute)); }
public override ImmutableArray <AttributeData> GetAttributes() { var attrs = base.GetAttributes(); // [PhpTraitAttribute()] if (_lazyPhpTraitAttribute == null) { var lazyPhpTraitAttribute = new SynthesizedAttributeData( DeclaringCompilation.CoreMethods.Ctors.PhpTraitAttribute, ImmutableArray <TypedConstant> .Empty, ImmutableArray <KeyValuePair <string, TypedConstant> > .Empty); Interlocked.CompareExchange(ref _lazyPhpTraitAttribute, lazyPhpTraitAttribute, null); } attrs = attrs.Add(_lazyPhpTraitAttribute); // return(attrs); }