- 24 12月, 2014 40 次提交
-
-
由 manishv 提交于
Fix for bug 1089200: Previewless subclasses of CodeActionWithOptions should not require empty override of ComputeOperationsAsync(CancellationToken) Override ComputeOperationsAsync(CancellationToken) in CodeActionWithOptions to return empty operations. Additionally, add an internal virtual GetOperationsCoreAsync on CodeAction, which is overriden in CodeActionWithOptions to invoke GetOperations(options, cancellationToken). This avoids code action hosts to explicitly check for CodeAction's runtime type to get code action operations. (changeset 1384776)
-
由 AlekseyTs 提交于
C#: Do not bind constructor initializer for an “external” constructor, report an error if constructor initializer is present in code. This prevents unexpected diagnostics. Fixes #386. ***NO_CI*** (changeset 1384736)
-
由 jaredpar 提交于
The documentation for PortableExecutableReference::CreateDocumentationProvider appears to be incorrect. It suggests the method can only be called once per instance which is inconsistent with the usage in the property DocumentationProvider. Updated documentation to match the usage behavior. (changeset 1384654)
-
由 nmgafter 提交于
-
由 AlekseyTs 提交于
Metadata: associate custom attributes with correct rows in generic parameters metadata table. Fixes #121. (changeset 1384436)
-
由 manishv 提交于
Fix for bug 1036352: Update preview dialog to be able to display all types of changes including added / removed documents, changes to additional documents, references etc. Add support for references and additional document changes to preview changes dialog. (changeset 1384198)
-
由 manishv 提交于
-
由 TomasMatousek 提交于
Add an overload of EmitDifferent that doesn't take isAddedSymbol - we only need isAddedSymbol temporarily until CLR bug 1094313 is fixed. It will be simpler to remove/obsolete the overload once it's not needed. (changeset 1384161)
-
由 mattwar 提交于
-
由 TomasMatousek 提交于
Due to CLR bug 1094313 the added members can't be referenced from another assembly. For now we report a rude edit if we detect a MemberRef or TypeRef to a symbol added during debugging. (changeset 1384081)
-
由 wochae 提交于
Porting the recent C# changes to support EnC for VB Async and Iterator. (changeset 1384053)
-
由 pgavlin 提交于
Many uses of MultiDictionary incur unnecessary overhead due to double-lookup or key enumeration and value lookup patterns and unnecessary allocations. This change enables single-lookup patterns, removes a number of allocations from typical uses of MultiDictionary, and cuts the surface area down to what it actually used by the product. ***NO_CI*** (changeset 1384052)
-
由 TomasMatousek 提交于
The symbol matcher wasn't correctly handling TypeRefs: it mapped their containing assembly to the same assembly as the target assembly. Instead it should map source modules from all generations to the target assembly and keep other modules unmapped. (changeset 1384022)
-
由 Pharring 提交于
-
由 tmeschter 提交于
When the AppDomain.CurrentDomain.AssemblyResolve event is fired to resolve an analyzer's dependency, the ResolveEventArgs.Name property has the name of the desired assembly *before* any policies (like binding redirects) have been applied. Since we're doing our own assembly resolution it is up to us to apply policy, and we're advised that this is generally the correct thing to do. (changeset 1383995)
-
由 pgavlin 提交于
The await rewriter was attempting to manually replace "dynamic" with "object" in an expression's awaiter type and related methods for await expressions that are typed as "dynamic". Not only is this unnecessary--this sort of rewrite will be done at emit time--it is also incorrect given the pattern-based nature of await binding. I also simplified the code that finds and validates the various methods and types needed for an await expression while making this fix. ***NO_CI*** (changeset 1383986)
-
由 manishv 提交于
Heejae recently refactored the diagnostic service's diagnostic getter module to be thread safe. This change builds on that and makes the batch fix all provider query diagnostics for documents in parallel. (changeset 1383979)
-
由 nmgafter 提交于
Also includes VB implementation (changeset 1383936)
-
由 AlekseyTs 提交于
C# Method Type Argument Inference - Implement tie-breaker between object and dynamic types. Fixes #56. ***NO_CI*** (changeset 1383703)
-
由 AlekseyTs 提交于
***NO_CI*** (changeset 1383690)
-
由 jaredpar 提交于
1. The recursive parsing of statements, which occurs in delegate declarations or nested blocks, didn't have the same stack overflow guard that recursive expressions had. 2. The parser was subject to unnecessary recursion in mismatched brace scenario which lead to deep recursion when combined with delegate declarations A concrete example of the second issue is the following: class C { void Test() { // No closing } delegate void D1(); delegate void D2(); } In the above scenario both D1 and D2 will be parsed as delegate statement expressions and not delegate declarations. In files with a large number of delegates, common in generated code, this quickly lead to a stack overflow scenario. Our guards sufficiently protect us from a crash here however the editing experience is very poor. Once a stack guard is hit the parser essentially gives up on the remainder of the file. This meant a simple mismatched brace could kill the editing experience in a file. Discussed this with Neal and we decided the appropriate fix here was to not recurse into a delegate declaration if it lacked the opening {. ***NO_CI*** (changeset 1383579)
-
由 chandera 提交于
Add a very small implicit cache for Compilations. This will hopefully address a regression in Ausgov Winforms caused by the move to explicit caching. ***NO_CI*** (changeset 1383551)
-
由 dustincampbell 提交于
-
由 jaredpar 提交于
-
由 jaredpar 提交于
1. Removes the shared state and locks in favor of a more event driven style model. Values which were previously represented as writes to shared state are now represented as Task<T> values. The server will create the necessary Task values for the given state of the server, wait on any of them to complete and then handle them in a defined order. This eliminates a couple of remaining race condition in the server. 2. In the case of a client disconnect the server will initiate a soft shutdown. It will accept no new connections but wait for the remaining connections to complete processing before terminating the process. There is no fear of state corruption here. The goal is parity with the native command line compiler. If the user kicked off an expensive compilation they could terminate it with Ctrl+C and free up machine resources (or simply stop the compiler from repeatedly page faulting the machine). Roslyn needs to mimic this behavior as best as possible with VBCSCompiler. To be clear: this allows the server to complete while the compiler is still compiling code. It will only do so for connections which were severed by the client disconnecting from the named pipe. 3. In the case of an exception serving the compilation task the server will log the error and terminate itself immediately via Environment.Exit. Such an exception represents a flaw in the compiler itself and we can make no guarantees about the state of shared data in the compiler. Hence we terminate all existing task (changeset 1383458)
-
由 Pharring 提交于
A profile showed high CPU counts in SharedReadableStream.ReadByte/ReadArray (see below) for deserializing recoverable syntax trees. This is because of the overhead in UnmanagedMemoryAccessor.ReadByte. This can be fixed by doing our own pointer math given that the IntPtr is already made available through the ISupportDirectMemoryAccess interface. Name Inc % Microsoft.CodeAnalysis.Workspaces.Desktop.ni!...SharedReadableStream.ReadByte() 31.3 + mscorlib.ni!System.IO.UnmanagedMemoryAccessor.ReadByte(Int64) 30.0 |+ mscorlib.ni!UnmanagedMemoryAccessor.InternalReadByte 27.8 ||+ mscorlib.ni!SafeBuffer.AcquirePointer 11.6 ||+ mscorlib.ni!SafeBuffer.ReleasePointer 9.1 ||+ ?!? 1.8 ||+ clr!_EH_prolog3_catch 0.8 ||+ clr!SafeHandle::DangerousRelease 0.1 ||+ clr!SafeHandle::DangerousAddRef 0.1 |+ mscorlib.ni!UnmanagedMemoryAccessor.EnsureSafeToRead 0.8 |+ mscorlib.ni!SafeBuffer.AcquirePointer 0.3 |+ mscorlib.ni!SafeBuffer.ReleasePointer 0.0 + mscorlib.ni!UnmanagedMemoryAccessor.EnsureSafeToRead 0.2 + mscorlib.ni!UnmanagedMemoryAccessor.InternalReadByte 0.2 (changeset 1383444)
-
由 nmgafter 提交于
still outstanding is the target-type conversion to FormattableString and IFormattable. (changeset 1383442)
-
由 pgavlin 提交于
Fix a crash during lowering of string concatenation expressions where one argument is a null coalescing operator whose RHS has a constant null value. ***NO_CI*** (changeset 1383405)
-
由 jmarolf 提交于
-
由 AlekseyTs 提交于
VB: Define special error type symbol to represent a pointer type, enables accurate comparison of signatures of methods imported from metadata. ***NO_CI*** (changeset 1383354)
-
由 AlekseyTs 提交于
***NO_CI*** (changeset 1383309)
-
由 VSadov 提交于
***NO_CI*** (changeset 1382915)
-
由 BalajiKris 提交于
The fix is to remove identifiers in scope from conflicts tracker after fully visiting catch clause syntax. (changeset 1382753)
-
由 brettv 提交于
Explicit interface implementations in C# weren't getting found by the symbol searcher because the members are private. The fix is to search for symbols via INamespaceOrTypeSymbol.GetMembers() instead of MergedTypeDeclaration.MemberNames. (changeset 1382653)
-
由 pgavlin 提交于
The compiler had two issues with simple name binding for method type parameters: - As described in the specification (and implemented in Dev12), a simple name that binds to a method type parameter does so before member lookup happens. This means that such a simple name always binds to that type parameter whether or not it is the primary expression of an invocation expression. Instead, Roslyn always used the member lookup rules when binding simple names to method type parameters. - As implemented in Dev12 (and somewhat fuzzily described in the specification), method type parameters are not in scope when binding simple names in a method signature rather than a method body (note that this restriction obviously does not apply when binding types or namespaces inside a method signature). Instead, Roslyn placed method type parameters in scope when binding simple names inside a method signature. This change brings Roslyn in line with Dev12 and the spec in both cases. ***NO_CI*** (changeset 1382599)
-
由 ChuckStoner 提交于
-
由 VSadov 提交于
BugFix for 1043540 - For methods implementing interfaces, VB compiler uses "callvirt" instruction where "call" is used for similar methods that do not implement an interface. We were just checking for whether the method is MetadataFinal inconsistently. (IsNotOverridable cover only cases where method is explicitly not overridable). (changeset 1382533)
-
由 jaredpar 提交于
The VBCSCompilerTests depend on the csc and vbc projects at runtime. Added them as references to satisfy F5 scenarios. (changeset 1382157)
-
由 TomasMatousek 提交于
Implements Any and IndexOf extensions that take SyntaxKind as a parameter for SyntaxList, SeparatedSyntaxList, SyntaxTokenList and SyntaxTriviaList in both VB and C#. Some of the list already had an implementation of Any, others were missing it. (changeset 1382156)
-
由 acasey 提交于
We include function value locals in async and iterator methods so that appropriate errors can be reported when users attempt to refer to them. However, there's no reason to actually emit them into the resulting MoveNext method, because they will never be accessed. Unfortunately, for implementation-specific reasons, dropping them would be non-trivial. Instead, we drop their names so that they do not appear while debugging (esp in the Locals window). (changeset 1381977)
-