Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@xamarin.com>2016-06-17 16:06:44 +0300
committerLluis Sanchez <lluis@xamarin.com>2016-06-17 16:07:07 +0300
commitab6bdc969fd3cf361503d34e0fef51f6b1758332 (patch)
tree7238be86a9b25fdd1fd94fb809fc2d18598163c9 /main/src/core/MonoDevelop.Core
parent12daf1b4216f9d5c2c4c8813d13f33f704f5f9a1 (diff)
[Core] MSBuild evaluation fix
Add support for creating strings using the property function "new".
Diffstat (limited to 'main/src/core/MonoDevelop.Core')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs12
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs2
2 files changed, 8 insertions, 6 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs
index f5789efd53..3341684d1a 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs
@@ -439,7 +439,7 @@ namespace MonoDevelop.Projects.MSBuild
return false;
// Find a method with a matching number of parameters
- var method = FindBestOverload (member.OfType<MethodInfo> (), parameterValues);
+ var method = FindBestOverload (member.OfType<MethodBase> (), parameterValues);
if (method == null)
return false;
@@ -552,11 +552,11 @@ namespace MonoDevelop.Projects.MSBuild
return false;
}
- MethodInfo FindBestOverload (IEnumerable<MethodInfo> methods, object [] args)
+ MethodBase FindBestOverload (IEnumerable<MethodBase> methods, object [] args)
{
- MethodInfo methodWithParams = null;
+ MethodBase methodWithParams = null;
- foreach (var m in methods.OfType<MethodInfo> ()) {
+ foreach (var m in methods) {
var argInfo = m.GetParameters ();
// Exclude methods which take a complex object as argument
@@ -580,7 +580,7 @@ namespace MonoDevelop.Projects.MSBuild
return pi.ParameterType.IsArray && pi.IsDefined (typeof (ParamArrayAttribute));
}
- object ConvertArg (MethodInfo method, int argNum, object value, Type parameterType)
+ object ConvertArg (MethodBase method, int argNum, object value, Type parameterType)
{
var sval = value as string;
if (sval == "null")
@@ -640,6 +640,8 @@ namespace MonoDevelop.Projects.MSBuild
MemberInfo[] ResolveMember (Type type, string memberName, bool isStatic)
{
+ if (type == typeof (string) && memberName == "new")
+ memberName = "Copy";
if (type.IsArray)
type = typeof (Array);
var flags = isStatic ? BindingFlags.Static : BindingFlags.Instance;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
index 6855ff4d4a..cc15461374 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
@@ -482,7 +482,7 @@ namespace MonoDevelop.Projects
return evaluatedCompileItemsTask.Task.Result;
}
- var dependsList = coreCompileDependsOn.Split (new [] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+ var dependsList = coreCompileDependsOn.Split (new [] { ";" }, StringSplitOptions.RemoveEmptyEntries).Select (s => s.Trim ()).Where (s => s.Length > 0);
foreach (var dependTarget in dependsList) {
try {
// evaluate the Compile targets