<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>174315</bug_id>
          
          <creation_ts>2017-07-10 11:06:36 -0700</creation_ts>
          <short_desc>check-webkit-style: cpp linter incorrectly treats colon appearing in a string argument as the start of the initializer list</short_desc>
          <delta_ts>2022-03-01 03:14:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Baker">mattbaker</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>buildbot</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1327068</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-07-10 11:06:36 -0700</bug_when>
    <thetext>check-webkit-style&apos;s cpp linter incorrectly treats colon appearing in a string argument as the start of the initializer list, and emits an error if whitespace rules aren&apos;t followed.

For example, running check-webkit-style on the following:

MyClass::MyClass()
    : m_foo(&quot;foo:bar&quot;)
{
}

Will output:
ERROR: Missing spaces around :  [whitespace/init] [4]

Note:
The problem is with the cpp linter regex, see Tools/Scripts/webkitpy/style/checkers/cpp.py:2043:

# match the start of initialization list
if search(r&apos;^(?P&lt;indentation&gt;\s*)((explicit\s+)?[^(\s|\?)]+\([^\?]*\)\s?\:|^(\s|\?)*\:)([^\:]|\Z)[^;]*$&apos;, line):
    if search(r&apos;[^:]\:[^\:\s]+&apos;, line):
        error(line_number, &apos;whitespace/init&apos;, 4,
            &apos;Missing spaces around :&apos;)
    ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327069</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-10 11:06:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/33216486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327293</commentid>
    <comment_count>2</comment_count>
      <attachid>315052</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-07-10 17:24:51 -0700</bug_when>
    <thetext>Created attachment 315052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327302</commentid>
    <comment_count>3</comment_count>
      <attachid>315052</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-07-10 17:50:29 -0700</bug_when>
    <thetext>Comment on attachment 315052
Patch

r- for now.

Need to improve on this (using elided over raw_lines feels risky), and add a test case to Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315052</attachid>
            <date>2017-07-10 17:24:51 -0700</date>
            <delta_ts>2022-03-01 03:14:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174315-20170710172450.patch</filename>
            <type>text/plain</type>
            <size>2223</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWZkYzU1MTcwZWMwMWU1NTFhMTBiM2Y4YjE3MmRkMWEz
MmM2NDRkYy4uZTdjMjk2N2RkOGY2NjAyODQ0Mjk1OWViNDg2MTk4Y2U4YWE2Y2ZiNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE3LTA3LTEwICBNYXR0IEJha2VyICA8bWF0dGJha2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBjaGVjay13ZWJraXQtc3R5bGU6IGNwcCBsaW50ZXIgaW5jb3JyZWN0bHkgdHJlYXRzIGNv
bG9uIGFwcGVhcmluZyBpbiBhIHN0cmluZyBhcmd1bWVudCBhcyB0aGUgc3RhcnQgb2YgdGhlIGlu
aXRpYWxpemVyIGxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NDMxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzMyMTY0ODY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3BlcmF0ZSBvbiBlbGlk
ZWQgbGluZXMgKGNvbW1lbnRzIGFuZCBzdHJpbmdzIHJlbW92ZWQpIHdoZW4gY2hlY2tpbmcKKyAg
ICAgICAgdGhlIHN0eWxlIG9mIHRoZSBtZW1iZXIgaW5pdGlhbGl6YXRpb24gbGlzdC4gVGhpcyBw
cmV2ZW50cyBhIGNvbG9uIGFwcGVhcmluZworICAgICAgICBpbiBhIHN0cmluZyBmcm9tIGJlaW5n
IG1pc3Rha2VuIGZvciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0LgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHk6CisgICAgICAgIChjaGVja19tZW1i
ZXJfaW5pdGlhbGl6YXRpb25fbGlzdCk6CisKIDIwMTctMDctMDMgIEJyaWFuIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIFJlcGxheTogcmVtb3ZlIHNvbWUgdW51c2VkIGNv
ZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3Bw
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKaW5kZXgg
NTc0MjQzNTM1NmI2ZDAwYTIyZTVhNzQ4YWI1NzI0Y2NmYjJlNGE1NS4uNmYyYTI1NjExYWJiYjZl
ZWVlYmYzMmFmNjIzZDA5NGU1ZWEwYWQxNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy9jcHAucHkKQEAgLTIwMjcsOCArMjAyNyw4IEBAIGRlZiBjaGVja19tZW1i
ZXJfaW5pdGlhbGl6YXRpb25fbGlzdChjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKToK
ICAgICAgIGVycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFueSBlcnJvcnMgZm91bmQu
CiAgICAgIiIiCiAKLSAgICByYXcgPSBjbGVhbl9saW5lcy5yYXdfbGluZXMKLSAgICBsaW5lID0g
cmF3W2xpbmVfbnVtYmVyXQorICAgIGVsaWRlZCA9IGNsZWFuX2xpbmVzLmVsaWRlZAorICAgIGxp
bmUgPSBlbGlkZWRbbGluZV9udW1iZXJdCiAKICAgICBpZiBzZWFyY2gocidcYihbQS1aYS16MC05
X10qXylcKFwxXCknLCBsaW5lKToKICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1l
L2luaXQnLCA0LApAQCAtMjA2NCw5ICsyMDY0LDkgQEAgZGVmIGNoZWNrX21lbWJlcl9pbml0aWFs
aXphdGlvbl9saXN0KGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgJ0NvbW1hIHNob3VsZCBiZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBs
aW5lIGluIGEgbWVtYmVyIGluaXRpYWxpemF0aW9uIGxpc3QuJykKIAogICAgICAgICAgICAgIyBU
byBhdm9pZCBpbmZpbml0ZSBsb29wLCBpZiBjYW4ndCBmaW5kIHRoZSBlbmQgb2YgbWVtYmVyIGlu
aXRpYWxpemF0aW9uIGxpc3QKLSAgICAgICAgICAgIGlmIGxpbmVfbnVtYmVyIDwgbGVuKHJhdykg
LSAxOgorICAgICAgICAgICAgaWYgbGluZV9udW1iZXIgPCBsZW4oZWxpZGVkKSAtIDE6CiAgICAg
ICAgICAgICAgICAgbGluZV9udW1iZXIgPSBsaW5lX251bWJlciArIDEKLSAgICAgICAgICAgICAg
ICBsaW5lID0gcmF3W2xpbmVfbnVtYmVyXQorICAgICAgICAgICAgICAgIGxpbmUgPSBlbGlkZWRb
bGluZV9udW1iZXJdCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGJyZWFrCiAK
</data>
<flag name="review"
          id="335917"
          type_id="1"
          status="-"
          setter="mattbaker"
    />
          </attachment>
      

    </bug>

</bugzilla>