- 07 1月, 2015 1 次提交
-
-
由 AlekseyTs 提交于
VB CLSComplianceChecker: Visit declaration in each module separately to avoid dealing with merged namespaces. Merged namespaces do not have containing module, which was causing a NullReferenceException. ***NO_CI*** (changeset 1389009)
-
- 02 10月, 2014 1 次提交
-
-
由 TomasMatousek 提交于
This shelveset implements following changes to metadata reference compiler API in order to remove duplication in the public surface and prevent users from unexpected metadata lifetime issues: 1) MetadataImageReference and MetadataFileReference overlap Currently MetadataImageReference can be constructed from a Stream. MetadataImageReference supports metadata prefetch (reading the blob into memory and close the underlying stream) as well deferred reading (no content is read until the reference is consumed during compilation). MetadataFileReference only supports deferred reading. Lifetime of MetadataFileReference is non-deterministic, the underlying file is locked until no references exist and we GC the metadata. On the other hand, it is possible to construct MetadataImageReference in such a way that allows controlling the underlying resources deterministically. Remove MetadataFileReference, use MetadataImageReference instead. 2) Lifetime management AssemblyMetadata and ModuleMetadata objects hold on resources and implement IDisposable. When using MetadataFileReference constructors and some MetadataImageReference constructors to create references the underlying metadata objects are created implicitly and the user doesn’t have a way to explicitly dispose them. Make MetadataImageReference constructors internal and instead add factory method GetReference on AssemblyMetadata/ModuleMetadata. The usage pattern is: using (var metadata = AssemblyMetadata.CreateFromXxx(…)) { var compilation = CSharpCompilation.Create(syntaxTrees, new[] { metadata.GetReference() }); … } In addition the shelveset makes MetadataImageReference internal and adds the following convenience APIs, that are not the most efficient but are very convenient, easy to discover and safe to use for customers that don’t wanna explicitly manage the lifetime of metadata objects. (changeset 1345987)
-
- 25 9月, 2014 2 次提交
- 15 8月, 2014 1 次提交
-
-
由 TomasMatousek 提交于
Reduce the variety of optimization related compilation option values used in tests to: Release, DebuggableRelease and Debug. By default tests should use Release, which enables all optimizations. PDB tests should mostly use Debug. We should have targeted tests for DebuggableRelease, for optimizations that are selectively disabled to improve debuggability of release builds. (changeset 1312277)
-
- 20 6月, 2014 1 次提交
-
-
由 TomasMatousek 提交于
-
- 23 5月, 2014 1 次提交
-
-
由 TomasMatousek 提交于
Stores Encoding on SourceText so that we can always calculate checksum of the underlying binary data, even if the SourceText wasn’t created from a Stream. Adds WithRootAndOptions and WithFilePath methods to SyntaxTree and implements them for all subclasses. I decided to merge WithRoot and WithOptions to a single method WithRootAndOptions since setting one without the other doesn't make much sense (the options should correspond to the root node). Propagates the Encoding throughout workspaces and services. Refactors recoverable syntax trees so that they can implement With* methods. Allow encoding on SourceText to be unspecified (null) and report an emit diagnostic when attempting to emit debug information for a syntax tree that is backed by encoding-less source text. If user creates a syntax tree from a string they previously read from a file and then try to emit debuggable compilation with such tree the original encoding of the file might not match the default UTF8 (they might different by presence of BOM, which is quite subtle). To avoid confusion we don't set UTF8 encoding by default. Instead we report the diagnostic and the user needs to explicitly provide an encoding to the syntax tree factory method. Avoid leaking DecoderFallbackException out of EncodedStringText.Create. Throw InvalidDataException instead to reduce the amount of exceptions that the caller needs to deal with. Also moves HasSameText extension method from Services to SourceText and optimizes the comparison for the case we the SHA1 checksums are available. (changeset 1260412)
-
- 15 4月, 2014 1 次提交
-
-
由 YingP99 提交于
-
- 19 3月, 2014 1 次提交
-
-
由 Pilchie 提交于
-