[swift-dev] Test case "tuple_arguments.swift" failed when compiler is built in debug mode on x86_64

Sam Ding samding at ca.ibm.com
Mon Oct 16 11:20:16 CDT 2017

Hi all,

I test the case "tuple_arguments.swift" for v4.0 and found it is failed
when the swift compiler is built in "-d" debug mode, but it is passed
when built in release mode.
Here is a simple  test case:
     // SR-4738

   let sr4738 = (1, (2, 3))
   [sr4738].map { (x, (y, z)) -> Int in x + y + z } // expected-error {{use
   of undeclared type 'y'}}
   // expected-error at -1 {{closure tuple parameter does not support
   destructuring}} {{20-26=arg1}} {{38-38=let (y, z) = arg1
   ; }}

Save it to a file (for example, tt.swift), then run following commands:

      ` swift -frontend -target x86_64-unknown-linux-gnu
   -module-cache-path /tmp/ -swift-version 3 -typecheck -verify
   -disable-objc-attr-requires-foundation-module tt.swift -swift-version 4

If "swift" compiler is built with debug mode ("-d"), then got following

      tt.swift:5:96: error: expected fix-it not seen; actual fix-its:
      {{20-26=arg1}} {{38-38=let  = arg1; }}
       Stack dump:
      0.      Program arguments: swift -frontend -target
      x86_64-unknown-linux-gnu -module-cache-path /tmp/ -swift-version 3
      -typecheck -verify -disable-objc-attr-requires-foundation-module
      tt.swift -swift-version 4
      Aborted (core dumped)

The testing  "lib/Frontend/DiagnosticVerifier.cpp:: checkForFixIt" gives
the "ActualFixIt" is  "let " and "Expected" is "let (y, z) = arg1", and
then causes  "core dumped"  in an assert.
However the both  "ActualFixIt" and "Expected" match when the "swift" is
built in release mode.
Note that the all "fixed-it"s are stored in a list, originally is added by

Can anyone let me know how the compiler build options affect the test
I tested the same case on s390x and found the similar errors.


Sam Ding,
Linux on z Systems  Open Source Ecosystem
IBM Toronto Lab,
email: samding at ca.ibm.com
phone: (905)413-2947
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20171016/348a5301/attachment.html>

More information about the swift-dev mailing list