1. 14 3月, 2019 5 次提交
    • C
      Fix failing tests: · 72ae5183
      Chris Sienkiewicz 提交于
      - Don't do analysis for speculative attributes
      - Manually call TryGetThisParameter, rather than MethodThisParameter which can throw
      72ae5183
    • C
      Rewrite analysis as part of nullable walker: · ce65b091
      Chris Sienkiewicz 提交于
      - Add an entry point to nullable walker for attribute analysis
      - Implement analyze attribute in the walker
      - Remove the analysis from binder_attributes and call nullable walker instead
      - Add extra fields to BoundAttribute that are needed for nullable analysis
      - Add some extra test scenarios
      ce65b091
    • C
      PR Feedback: · 4b20449a
      Chris Sienkiewicz 提交于
      - Support supression
      - Fix params array of null
      - Fix arguments out-of-order
      4b20449a
    • C
      Delete empty line · a0a1cd31
      Chris Sienkiewicz 提交于
      a0a1cd31
    • C
      Report nullability for attribute arguments: · a006bc20
      Chris Sienkiewicz 提交于
      - At binding time check both constructor and value arguments for const null
      - When arguments are arrays, check for nullable array mismatch
      - When arguments are non nullable arrays check for nullable inside initializers
      - Add tests
      a006bc20
  2. 13 3月, 2019 9 次提交
  3. 12 3月, 2019 17 次提交
  4. 11 3月, 2019 5 次提交
    • J
      Tune tolerance levels · 63666416
      Jared Parsons 提交于
      63666416
    • J
      Fix the overflow check · 14cfe689
      Jared Parsons 提交于
      14cfe689
    • J
      Fix conflict · 64298605
      Jared Parsons 提交于
      64298605
    • J
      PR feedback · 5c4db533
      Jared Parsons 提交于
      5c4db533
    • J
      Fix stack overflow compiling deeply nested generic · 6e934019
      Jared Parsons 提交于
      As a part of implementing nullable reference types many of our locals
      switched from `TypeSymbol` to `TypeSymbolWithAnnotations`. In the vast
      majority of cases this doesn't have a meaningful impact on compilation.
      They are bigger (about 3X) but it's still a relatively small `struct`
      (three words).
      
      The size difference is significant though in
      `BindNamespaceOrTypeOrAliasSymbol`. This method is used in recursive
      parts of binding and is mutually recursive with `BindQualifiedNam`. This
      method defines a large number of locals which contribute to every layer
      of recursion. When they moved to `TypeSymbolWithAnnotations` this pushed
      us outside our tolerance levels and we hit an overflow in extreme cases.
      
      Virtually none of these locals are used in the recursive case. Factored
      their use into local functions so we only pay the stack usage on demand.
      
      closes #33909
      fixes https://github.com/dotnet/coreclr/issues/22757
      6e934019
  5. 09 3月, 2019 4 次提交