1. 24 3月, 2015 1 次提交
  2. 14 3月, 2015 1 次提交
  3. 12 3月, 2015 1 次提交
  4. 09 3月, 2015 1 次提交
    • J
      Respond to PR feedback · 21a9cc8a
      Jared Parsons 提交于
      This change takes the following steps:
      
      - Changes EmitStreamProvider to wrap a single Stream instead of a group
      of Stream.
      - Changes the emit behavior to consider Analyzer errors before
      attempting to write the PE / PDB Stream to disk.
      21a9cc8a
  5. 07 3月, 2015 1 次提交
  6. 06 3月, 2015 1 次提交
  7. 28 2月, 2015 1 次提交
    • B
      Code formatter run · ae1aeb41
      beep boop 提交于
      Been almost a month since the code formatter was run so this change was
      a bit larger than would be expected for a normal (weekly) update.  Diffs
      mostly around:
      
      - Whitespace changes
      - Missing copyright headers
      - Missing visibility modifiers
      ae1aeb41
  8. 09 2月, 2015 1 次提交
  9. 06 2月, 2015 2 次提交
    • T
      Change MetadataReferenceProperties.Aliases to never return default array. · 663995d6
      TomasMatousek 提交于
      Makes it easier to use the property and fixes a couple of bugs, where the code didn't check for either IsDefault or IsEmpty. Now all use-sites just need to check for IsEmpty.
      
      Fixes 1119812. (changeset 1410494)
      663995d6
    • T
      PDB import scopes refactoring. · 2e2e8ee8
      TomasMatousek 提交于
      Changes:
      
      To enable producing both Portable and native PDB formats we need to move the format specific imports encoding down to the PdbWriter. Instead of constructing NamespaceScope objects containing strings that encode usings/imports the C# and VB constructs that hold on to bound imports (ImportChain in C#, SourceFile in VB) now implement a new CCI-level interface IImportScope that provides an array of UsedTypeOrNamespace for each import scope. UsedTypeOrNamespace struct now doesn’t contain strings but symbols that represent the entities that re referenced in usings/Imports. IImportScope only represents imports on file level and below. Project level imports are exposed via new API on Cci.IModule (GetImports method). To represent a namespace a new CCI-level interface INamespace is introduced and implemented by NamespaceSymbol. In future we could replace usage of qualified namespace strings with this interface in other places in the compiler-CCI interface, but to minimize the impact I have not done so in this change.
      
      Background:
      
      Currently C# and VB compilers build a list of namespace scopes in NamespaceScopeBuilder that are then passed via MethodBody to the MetadataWriter, which then passes them to the PdbWriter. The NamespaceScopeBuilder encodes various forms of usings, extern aliases and imports in specially formatted strings that the EE understands how to decode. It constructs a list of all usings/imports/extern-aliases/etc. for each method. The PdbWriter then writes these string lists to PDB namespace scope records and implements a forwarding optimization – within a set of methods that have the same usings we designate one that we associate the strings with and the others forward to it. The forwarding is implemented differently by VB and C#. VB also defines some additional namespace scope records for default namespace, NoPia assembly names and method namespace.
      
      The new portable PDB format has a different, simpler and more efficient representation of import scopes with the same encoding for C# and VB. Import scopes are first class entities that have parent pointer and thus form a tree. The structure of the tree is language specific. The root of the tree represents a project/compilation-wide import scope. For C# this scope contains assembly reference aliases (/r:Alias=Reference.dll). For VB this scope declares project level imports. The import scope tree for VB is 2 level deep – file level and project level. C# may define deeper trees as namespaces may define their own usings.
      Also some information that Dev12 encodes in PDB namespace scopes is not used anymore by our new EEs (such as VB NoPia names, VB method namespace). These are not emitted to Portable PDB since the old EEs won’t be able to consume the new format anyways.
       (changeset 1410225)
      2e2e8ee8
  10. 01 2月, 2015 1 次提交
    • B
      Complete the style update to the rest of Open\src directory · 995eb372
      beep boop 提交于
           Background:
      
           As discussed in the dev team all hands all code under the GitHub dotnet foundation is using a single process for contribution, API review, infrastructure and coding style. The idea is to present a unified view to our customer and give them a single story for contributing to any project under the dotnet foundation.
      
           https://github.com/dotnet/corefx/wiki/Contributing#c-coding-style
      
           The coding style transition is automated using a Roslyn based rewrite tool:
      
           https://github.com/dotnet/codeformatter
      
           This will be applied in stages across our developer tree. Right now the focus is on the Open directory as this is what is being presented on github. Code owners will be contacted before the transition happens.
      
           Note: this is a soft style requirement. There are no build errors that come from this change.
       (changeset 1408227)
      995eb372
  11. 31 1月, 2015 2 次提交
    • T
      EnC support for lambdas & closures in C# compiler · ebc795d4
      TomasMatousek 提交于
      1) Change MethdCompiler.BindMethodBody to associate correct syntax with BoundBlocks it creates when binding constructor with constructor initializer call (two bound blocks are created – outer one defines a closure scope for constructor parameters, the inner one defines a closure scope for variables in the body).
      2) Introduce MethodDebugId – a method ordinal and generation ordinal pair
      3) Introduce LamdbaDebugInfo and ClosureDebugInfo to represent information (syntax offset) we use to figure out how to map lambdas and closures to the previous generation.
      4) Adds a new PDB CDI record (#7) to store lambda and closure debug info.
      5) Generalizes CalculateLocalSyntaxOffset to handle positions in field/property initializers and constructor initializers. Use it to calculate syntax offsets of lambdas and closure scopes. (TODO: rename CalculateLocalSyntaxOffset to CalculateSyntaxOffset).
      6) Replace lambda and scope ordinal dispenser integers with array builders that collect LambdaDebugInfo and ClosureDebugInfo.
      7) Use TryGet- pattern for all VariableSlotAllocator APIs.
      8) Implements mapping of lambda method and display class names to previous generation via VariableSlotAllocator.
       (changeset 1407240)
      ebc795d4
    • T
      If an assembly has "global" alias don't qualify namespace name in PDB with an... · e14d07c9
      TomasMatousek 提交于
      If an assembly has "global" alias don't qualify namespace name in PDB with an extern alias. (changeset 1407218)
      e14d07c9
  12. 28 1月, 2015 1 次提交
    • T
      The compiler emits catch-all handler to all async methods. In case of async... · b564f8c4
      TomasMatousek 提交于
      The compiler emits catch-all handler to all async methods. In case of async void methods we also emit the offset of the catch handler to PDB, so that the debugger can pretend that exceptions thrown by the async method are unhandled. Otherwise they are lost. Currently the compiler emits wrong offset, so the debugger is completely confused and displays "no source location" when such exception occurs.
      
           The fix is to remove a synthesized "nop" instruction that was incorrectly used to track the catch handler IL offset. Instead mark the synthesized BoundCatchHandler node by a flag and create the IL marker in the CodeGen when emitting instructions for such bound node.
      
           Affects both C# and VB.
      
           Fixes bug 1114809. (changeset 1405564)
      b564f8c4
  13. 25 1月, 2015 1 次提交
  14. 15 1月, 2015 2 次提交
    • A
      DevDiv #1105950: AQNs in CDI · cfd9b464
      acasey 提交于
      Assembly-qualified names in custom debug info should be produced using the same code path as assembly-qualified names in emitted code.  This fixes an unhandled case (pointers as type arguments).
      
      This also brings us closer to the native behavior: we had started emitting the assembly name for types in the current assembly, which the native compiler did not.
      
      CR: alekseyt; tomat (changeset 1397706)
      cfd9b464
    • J
      Change the copyright to Microsoft (changeset 1397550) · f7de4d2f
      jaredpar 提交于
      f7de4d2f
  15. 14 1月, 2015 1 次提交