1. 18 11月, 2017 1 次提交
  2. 17 11月, 2017 7 次提交
  3. 16 11月, 2017 9 次提交
    • V
      undo formatting · a6696bd5
      vsadov 提交于
      a6696bd5
    • V
      PR feedback · aa26b452
      vsadov 提交于
      aa26b452
    • D
      Merge pull request #23128 from dpoeschl/CodeModelSetNameWithElasticTrivia · 160c4098
      David Poeschl 提交于
      Ensure CodeModel adds elastic trivia when setting names
      160c4098
    • A
      Enable full signing during bootstrap for CI (#23169) · 76889517
      Andy Gocke 提交于
      Currently, full signing is always disabled on Linux/Mac because it was
      not supported. Now, it is supported. To avoid taking a dependency on
      full signing, this only enables full signing when we're confirmed to be
      building with a bootstrap compiler.
      76889517
    • A
      Fix NullReferenceException thrown while building IOperation node for dynamic... · 429e61ea
      AlekseyTs 提交于
      Fix NullReferenceException thrown while building IOperation node for dynamic object member initializer. (#23162)
      
      Fixes #23154.
      429e61ea
    • A
      Do not expose type expression as IDynamicMemberReferenceOperation.Instance (#23170) · 5d35ed39
      AlekseyTs 提交于
      Related to #22548 and #22229.
      5d35ed39
    • M
      Merge pull request #23080 from mavasani/RangeVariables · 52a759ef
      Manish Vasani 提交于
      Do not expose operation nodes for BoundRangeVariables in C# query exp…
      52a759ef
    • A
      Clean-up IOperation tree representing tuple literal conversions. (#23141) · 33f5e912
      AlekseyTs 提交于
      Related to #22548 and #22229.
      
      There are several issues with IOperation tree when it comes to conversions applied to tuple literals:
      1. When conversion is explicitly specified in code, it is translated to conversions on individual
      elements of the literal and these BoundConversion nodes are also marked as explicitly
      specified in code (which makes sense). However, the syntax associated with a BoundConversion
      node on top of an element matches the syntax of the element (which also makes sense).
      The problem is that both the conversion node and the element appear as “explicit” in
      IOperation tree, which violates one of the tree invariants – at most one “explicit” node for
      a given syntax node.
      2. When a tuple literal is converted, compiler creates a BoundConvertedTupleLiteral node,
      which has the target tuple type as its Type, but the BoundConversion node on top of the
      BoundConvertedTupleLiteral captures conversion information (kind, etc.) for conversion
      From tuple’s natural type to the target type. So, often, we end up with both nodes having
      The same Type, but the conversion says it is not an identity conversion. This shape helps
      SemanticModel to provide accurate information about types and conversions, but the
      IOperation tree looks very confusing.
      3. When conversion is explicitly specified in code, the BoundConversion node from the
      previous item is marked as explicitly specified in code, but it shares syntax node with
      BoundConvertedTupleLiteral. Both nodes appear as “explicit” in IOperation tree, which
      violates the same invariant.
      4. When conversion is explicitly specified in code, compiler adds yet another explicit
      Identity conversion on top of the BoundConversion node from the previous item.
      It is needed for proper SemanticModel behavior. Even when it uses different syntax,
      the IOperation tree looks very confusing, there are two conversions on top of each other
      and it is not clear why intermediate conversion node is needed.
      
      In order to address all these issue the following changes are made to IOperation factory:
      - If conversion node is associated with the same syntax as its operand, the conversion
      is marked as isImplicit.
      - If Type of BoundConvertedTupleLiteral matches the Type of BoundConversion node
      on top of it the conversion node is not added to the IOperation tree. Instead a new property
      is added to ITupleOperation interface, called NaturalType. The property exposes the natural
      type of the tuple literal and makes it easy for consumers to figure out if a conversion from
      a natural type of a tuple literal took place.
      -  If Type of BoundConvertedTupleLiteral doesn’t match the Type of BoundConversion node
      on top of it and there is an identity conversion node on top of the BoundConversion node,
      the intermediate conversion node is not added to the IOperation tree, its conversion
      information is used for the top-most conversion node (instead of saying that it is identity).
      33f5e912
    • K
      Create build.sh · 3f58c3d3
      khyperia 提交于
      3f58c3d3
  4. 15 11月, 2017 11 次提交
  5. 14 11月, 2017 11 次提交
  6. 13 11月, 2017 1 次提交