Browse Source

Update assembly flags generation algorithm

pull/624/head
olegbevz 11 years ago
parent
commit
be0c6a343f
  1. 17
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AssemblyInfo/AssemblyInfoProvider.cs

17
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AssemblyInfo/AssemblyInfoProvider.cs

@ -250,7 +250,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -250,7 +250,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
return defaultValue;
}
private Guid? GetAttributeValueAsGuid(Attribute attribute)
private Guid? GetAttributeValueAsGuid(Attribute attribute)
{
var attributeArguments = attribute.Arguments.OfType<PrimitiveExpression>().ToArray();
if (attributeArguments.Length == 1)
@ -332,10 +332,19 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -332,10 +332,19 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
flagNames.Add(flagValue.ToString());
}
var codeParser = new CSharpParser();
Expression expression = null;
var expression = codeParser.ParseExpression(
string.Join(" | ", flagNames.Select(x => string.Format("AssemblyNameFlags.{0}", x))));
while (flagNames.Count > 0)
{
var currentFlagName = flagNames[0];
var flagExpression = new MemberReferenceExpression(new IdentifierExpression("AssemblyNameFlags"), currentFlagName);
expression = expression == null
? (Expression) flagExpression
: new BinaryOperatorExpression(expression, BinaryOperatorType.BitwiseOr, flagExpression);
flagNames.Remove(currentFlagName);
}
return expression;
}

Loading…
Cancel
Save