Browse Source

Update assembly flags generation algorithm

pull/624/head
olegbevz 12 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
return defaultValue; return defaultValue;
} }
private Guid? GetAttributeValueAsGuid(Attribute attribute) private Guid? GetAttributeValueAsGuid(Attribute attribute)
{ {
var attributeArguments = attribute.Arguments.OfType<PrimitiveExpression>().ToArray(); var attributeArguments = attribute.Arguments.OfType<PrimitiveExpression>().ToArray();
if (attributeArguments.Length == 1) if (attributeArguments.Length == 1)
@ -332,10 +332,19 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
flagNames.Add(flagValue.ToString()); flagNames.Add(flagValue.ToString());
} }
var codeParser = new CSharpParser(); Expression expression = null;
var expression = codeParser.ParseExpression( while (flagNames.Count > 0)
string.Join(" | ", flagNames.Select(x => string.Format("AssemblyNameFlags.{0}", x)))); {
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; return expression;
} }

Loading…
Cancel
Save