Răsfoiți Sursa

[mcs] Fix completion for `new {' input

Marek Safar 11 ani în urmă
părinte
comite
073fe7a39c
3 a modificat fișierele cu 30 adăugiri și 5 ștergeri
  1. 6 5
      mcs/class/Mono.CSharp/Mono.CSharp.csproj
  2. 12 0
      mcs/mcs/complete.cs
  3. 12 0
      mcs/mcs/cs-parser.jay

+ 6 - 5
mcs/class/Mono.CSharp/Mono.CSharp.csproj

@@ -60,9 +60,6 @@
     <Reference Include="System.XML" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="..\..\class\corlib\Mono.Security.Cryptography\CryptoConvert.cs">
-      <Link>CryptoConvert.cs</Link>
-    </Compile>
     <Compile Include="..\..\class\Mono.CompilerServices.SymbolWriter\MonoSymbolFile.cs">
       <Link>MonoSymbolFile.cs</Link>
     </Compile>
@@ -231,6 +228,9 @@
     <Compile Include="..\..\tools\monop\outline.cs">
       <Link>outline.cs</Link>
     </Compile>
+    <Compile Include="..\Mono.Security\Mono.Security.Cryptography\CryptoConvert.cs">
+      <Link>CryptoConvert.cs</Link>
+    </Compile>
     <Compile Include="cs-parser.cs" />
   </ItemGroup>
   <ItemGroup>
@@ -262,6 +262,7 @@
   </Target>
   -->
   <PropertyGroup>
-    <PreBuildEvent>"$(ProjectDir)..\..\jay\jay" -cvt &lt; "$(ProjectDir)..\..\jay\skeleton.cs" "$(ProjectDir)..\..\mcs\cs-parser.jay" &gt; "$(ProjectDir)cs-parser.cs"</PreBuildEvent>
+    <PreBuildEvent>
+    </PreBuildEvent>
   </PropertyGroup>
-</Project>
+</Project>

+ 12 - 0
mcs/mcs/complete.cs

@@ -210,5 +210,17 @@ namespace Mono.CSharp {
 			// Nothing
 		}
 	}
+
+	public class EmptyCompletion : CompletingExpression
+	{
+		protected override void CloneTo (CloneContext clonectx, Expression target)
+		{
+		}
+
+		protected override Expression DoResolve (ResolveContext rc)
+		{
+			throw new CompletionResult ("", new string [0]);
+		}
+	}
 	
 }

+ 12 - 0
mcs/mcs/cs-parser.jay

@@ -3615,6 +3615,10 @@ anonymous_type_expression
 		// TODO: lbag comma location
 		lbag.AddLocation ($$, GetLocation ($2), GetLocation ($4));
 	  }
+	| NEW OPEN_BRACE GENERATE_COMPLETION
+	  {
+		$$ = new EmptyCompletion ();
+	  }
 	;
 
 anonymous_type_parameters_opt_comma
@@ -3640,6 +3644,14 @@ anonymous_type_parameters
 	  	a.Add ((AnonymousTypeParameter) $3);
 	  	$$ = a;
 	  }
+	| COMPLETE_COMPLETION
+	  {
+		$$ = new EmptyCompletion ();
+	  }
+	| anonymous_type_parameter COMPLETE_COMPLETION
+	  {
+	  	$$ = $1;
+	  }
 	;
 
 anonymous_type_parameter