[xbuild] Function names are case insensitive.
authorAnkit Jain <radical@corewars.org>
Thu, 10 Mar 2011 11:27:19 +0000 (16:57 +0530)
committerAnkit Jain <radical@corewars.org>
Fri, 11 Mar 2011 13:16:19 +0000 (18:46 +0530)
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFunctionExpression.cs

index d0f253ae9d87fd3222438f1b186b1d30e00a63df..1b532c38d9622e80bf868c633e6db612bc18c24a 100644 (file)
@@ -46,7 +46,7 @@ namespace Microsoft.Build.BuildEngine {
                        Type t = typeof (ConditionFunctionExpression);
                        string [] names = new string [] { "Exists", "HasTrailingSlash" };
                
-                       functions = new Dictionary <string, MethodInfo> ();
+                       functions = new Dictionary <string, MethodInfo> (StringComparer.InvariantCultureIgnoreCase);
                        foreach (string name in names)
                                functions.Add (name, t.GetMethod (name, BindingFlags.NonPublic | BindingFlags.Static));
                }
@@ -60,10 +60,10 @@ namespace Microsoft.Build.BuildEngine {
                public override  bool BoolEvaluate (Project context)
                {
                        if (!functions.ContainsKey (name))
-                               throw new InvalidOperationException ();
+                               throw new InvalidOperationException ("Unknown function named: " + name);
                        
                        if (functions [name] == null)
-                               throw new InvalidOperationException ();
+                               throw new InvalidOperationException ("Unknown function named: " + name);
                                
                        MethodInfo mi = functions [name];
                        object [] argsArr = new object [args.Count + 1];