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 <slluis.devel@gmail.com>2016-06-27 20:42:02 +0300
committerGitHub <noreply@github.com>2016-06-27 20:42:02 +0300
commitc92f57f326843c4c6e475a26d627b240ab8580f9 (patch)
tree49f64e4e32ad386d36076a68a9cd9b6a9dbf199d
parent9bef9695d11fed141dba0f30510fb821dff8d546 (diff)
parent9b8a2ee62dc40ba8b3cdc682f268ff27bbf9cc94 (diff)
Merge pull request #1466 from mono/cycle7-fix41245monodevelop-6.0.2.41
Fixed 'Bug 41245 - Attribute code completion not showing all
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ParameterHinting/ParameterHintingEngine.cs10
-rw-r--r--main/tests/MonoDevelop.CSharpBinding.Tests/Features/CodeCompletion/NR6/MiscTests.cs36
-rw-r--r--main/tests/MonoDevelop.CSharpBinding.Tests/Features/ParameterHinting/ParameterHintingTests.cs46
3 files changed, 45 insertions, 47 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ParameterHinting/ParameterHintingEngine.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ParameterHinting/ParameterHintingEngine.cs
index 97e3542c65..dd9512f007 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ParameterHinting/ParameterHintingEngine.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ParameterHinting/ParameterHintingEngine.cs
@@ -269,9 +269,13 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
var info = semanticModel.GetSymbolInfo(node, cancellationToken);
var result = new ParameterHintingResult(node.SpanStart);
var resolvedMethod = info.Symbol as IMethodSymbol;
- if (resolvedMethod != null)
- result.AddData(factory.CreateConstructorProvider(resolvedMethod));
- result.AddRange(info.CandidateSymbols.OfType<IMethodSymbol>().Select (m => factory.CreateConstructorProvider(m)));
+ if (resolvedMethod != null) {
+ foreach (var c in resolvedMethod.ContainingType.GetMembers ().OfType<IMethodSymbol> ().Where (m => m.MethodKind == MethodKind.Constructor)) {
+ result.AddData (factory.CreateConstructorProvider (c));
+ }
+ } else {
+ result.AddRange (info.CandidateSymbols.OfType<IMethodSymbol> ().Select (m => factory.CreateConstructorProvider (m)));
+ }
return result;
}
diff --git a/main/tests/MonoDevelop.CSharpBinding.Tests/Features/CodeCompletion/NR6/MiscTests.cs b/main/tests/MonoDevelop.CSharpBinding.Tests/Features/CodeCompletion/NR6/MiscTests.cs
index 4cc0a70770..180095af9a 100644
--- a/main/tests/MonoDevelop.CSharpBinding.Tests/Features/CodeCompletion/NR6/MiscTests.cs
+++ b/main/tests/MonoDevelop.CSharpBinding.Tests/Features/CodeCompletion/NR6/MiscTests.cs
@@ -27,6 +27,7 @@ using System;
using NUnit.Framework;
using ICSharpCode.NRefactory6.CSharp.Completion;
using ICSharpCode.NRefactory6.CSharp.CodeCompletion.Roslyn;
+using System.Reflection.Metadata.Ecma335.Blobs;
namespace ICSharpCode.NRefactory6.CSharp.CodeCompletion.NR6
{
@@ -210,40 +211,5 @@ class Test
Assert.AreEqual (2, data.OverloadedData.Count);
}
-
- /// <summary>
- /// Bug 41388 - Code completion is incorrect for array types
- /// </summary>
- [Test]
- public void TestBug41388 ()
- {
- var provider = CreateProvider (
- @"
-using System;
-
-class Test
-{
- public event EventHandler FooBar;
-
- public Test[] test { get; private set; }
-
-
- public Test()
- {
- test = new $$
- FooBar += Test_FooBar;
- }
-
- void Test_FooBar(object sender, EventArgs e)
- {
-
- }
-}
-
-");
- Assert.IsNotNull (provider, "provider was not created.");
-
- Assert.IsNull (provider.Find ("System.Action<object, System.EventArgs>"));
- }
}
}
diff --git a/main/tests/MonoDevelop.CSharpBinding.Tests/Features/ParameterHinting/ParameterHintingTests.cs b/main/tests/MonoDevelop.CSharpBinding.Tests/Features/ParameterHinting/ParameterHintingTests.cs
index bedaa31fb7..8d6579fff4 100644
--- a/main/tests/MonoDevelop.CSharpBinding.Tests/Features/ParameterHinting/ParameterHintingTests.cs
+++ b/main/tests/MonoDevelop.CSharpBinding.Tests/Features/ParameterHinting/ParameterHintingTests.cs
@@ -1364,28 +1364,56 @@ namespace Test40018
}
/// <summary>
- /// Bug 41351 - No arguments code completion for methods called via ?. operator
+ /// Bug 41245 - Attribute code completion not showing all constructors and showing too many things
/// </summary>
[Test]
- public void TestBug41351 ()
+ public void TestBug41245 ()
{
var provider = CreateProvider (
@"
using System;
-class test
+namespace cp654fz7
{
- public event EventHandler Handler;
+ [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Parameter, AllowMultiple = false)]
+ public sealed class JsonPropertyAttribute : Attribute
+ {
+ internal bool? _isReference;
+ internal int? _order;
+ public bool IsReference
+ {
+ get { return _isReference ?? default(bool); }
+ set { _isReference = value; }
+ }
+ public int Order
+ {
+ get { return _order ?? default(int); }
+ set { _order = value; }
+ }
+ public string PropertyName { get; set; }
+ public JsonPropertyAttribute()
+ {
+ }
+
+ public JsonPropertyAttribute(string propertyName)
+ {
+ PropertyName = propertyName;
+ }
+ }
- public test()
+ class MainClass
{
- Handler?.Invoke($$);
+ [JsonProperty($$)]
+ public object MyProperty { get; set; }
+
+ public static void Main(string[] args)
+ {
+ }
}
}
-
");
Assert.IsNotNull (provider, "provider was not created.");
- Assert.AreEqual (1, provider.Count);
+ Assert.AreEqual (2, provider.Count);
}
}
-}
+} \ No newline at end of file