<?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>47646</bug_id>
          
          <creation_ts>2010-10-13 20:06:12 -0700</creation_ts>
          <short_desc>Add guideline for constructors doing implicit type conversion to coding style.</short_desc>
          <delta_ts>2010-10-14 22:18:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Website</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>293915</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-13 20:06:12 -0700</bug_when>
    <thetext>The text is meant to follow the consensus from https://lists.webkit.org/pipermail/webkit-dev/2010-September/014523.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293921</commentid>
    <comment_count>1</comment_count>
      <attachid>70703</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-13 20:22:33 -0700</bug_when>
    <thetext>Created attachment 70703
Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293923</commentid>
    <comment_count>2</comment_count>
      <attachid>70703</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-13 20:30:33 -0700</bug_when>
    <thetext>Comment on attachment 70703
Proposed fix.

Looks good to me.  We might wait to see if Darin has comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293937</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-10-13 21:00:06 -0700</bug_when>
    <thetext>I&apos;d suggest incorporating further comments, that sometimes instead of an explicit constructor you may not want a constructor at all, but perhaps a function returning the type instead. As Darin put it, the rule is really about when it is or isn&apos;t ok to have a constructor that creates an implicit type conversion, rather than about when to use explicit. The explicit keyword is one of the possible solutions if there is an implicit type conversion but there shouldn&apos;t be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294028</commentid>
    <comment_count>4</comment_count>
      <attachid>70703</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-14 02:42:53 -0700</bug_when>
    <thetext>Comment on attachment 70703
Proposed fix.

Marking r- per mjs comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294032</commentid>
    <comment_count>5</comment_count>
      <attachid>70722</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-14 02:55:06 -0700</bug_when>
    <thetext>Created attachment 70722
Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294453</commentid>
    <comment_count>6</comment_count>
      <attachid>70722</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-14 16:31:32 -0700</bug_when>
    <thetext>Comment on attachment 70722
Proposed fix.

Might be worthwhile to mention that we also do not put in the meaningless explicit keyword when there are no arguments or more than one non-default argument. I see incorrect uses of explicit in files such as BindingSecurity.h, JSDOMWrapper.h, JSMainThreadExecState.h, ScheduledAction.h, V8BindingState.h, Canvas2DLayerChromium.h, RenderThemeQt.h, IDBCursor.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294580</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-14 22:18:13 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 70722 [details])
&gt; Might be worthwhile to mention that we also do not put in the meaningless explicit keyword when there are no arguments or more than one non-default argument. I see incorrect uses of explicit in files such as BindingSecurity.h, JSDOMWrapper.h, JSMainThreadExecState.h, ScheduledAction.h, V8BindingState.h, Canvas2DLayerChromium.h, RenderThemeQt.h, IDBCursor.h.

I added language about that.  (I should make the style checker verify that as well at some point.)

Committed as http://trac.webkit.org/changeset/69837</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70703</attachid>
            <date>2010-10-13 20:22:33 -0700</date>
            <delta_ts>2010-10-14 02:55:06 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>explicit.diff</filename>
            <type>text/plain</type>
            <size>1443</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFNpdGUvQ2hhbmdlTG9nIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
aW5kZXggZjU1YTU4Zi4uMWZmNTk4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wOS0zMCAg
RGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluZm9ybWF0aW9uIGFib3V0IGV4cGxpY2l0
IGNvbnN0cnVjdG9ycyB0byBjb2Rpbmcgc3R5bGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzY0NgorCisgICAgICAgICogY29kaW5nL2NvZGluZy1z
dHlsZS5odG1sOgorCiAyMDEwLTEwLTAxICBBbGV4IE1hdGhld3MgIDxwb3NzZXNzZWRwZW5ndWlu
Ym9iQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYg
LS1naXQgYS9XZWJLaXRTaXRlL2NvZGluZy9jb2Rpbmctc3R5bGUuaHRtbCBiL1dlYktpdFNpdGUv
Y29kaW5nL2NvZGluZy1zdHlsZS5odG1sCmluZGV4IDVhZmQ3ODAuLmFmYWE2ZmUgMTAwNjQ0Ci0t
LSBhL1dlYktpdFNpdGUvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sCisrKyBiL1dlYktpdFNpdGUv
Y29kaW5nL2NvZGluZy1zdHlsZS5odG1sCkBAIC05MzksNiArOTM5LDM1IEBAIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKIDwvb2w+CiAKKzxoMz5DbGFzc2VzPC9oMz4KKworPG9sPgorPGxpPgorVXNl
IGV4cGxpY2l0IGZvciBzaW5nbGUgYXJndW1lbnQgY29uc3RydWN0b3JzIHdoZW4gdGhlIGFyZ3Vt
ZW50IGlzIG5vdCByZWFzb25hYmx5IHRob3VnaHQgb2YgYXMgYSB0eXBlIGNvbnZlcnNpb24uIElm
IGl0IG1heSBiZSB0aG91Z2h0IG9mIGFzIGEgdHlwZSBjb252ZXJzaW9uLCB0aGVuIGltcGxpY2l0
IGNvbnZlcnNpb24gaXMgb2suIElmIHRoZSB0eXBlIGNvbnZlcnNpb24gaXMgY29zdGx5LCBhdm9p
ZCBhIGNvbnN0cnVjdG9yIGFsdG9nZXRoZXIgYW5kIG1ha2UgaXQgYSBuYW1lZCBmdW5jdGlvbi4K
KworPGg0IGNsYXNzPSJyaWdodCI+UmlnaHQ6PC9oND4KKzxwcmUgY2xhc3M9ImNvZGUiPgorY2xh
c3MgTGFyZ2VJbnQgeworcHVibGljOgorICAgIExhcmdlSW50KGludCk7CisuLi4KKworY2xhc3Mg
VmVjdG9yIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBWZWN0b3IoaW50IHNpemUpOworLi4uCis8
L3ByZT4KKworPGg0IGNsYXNzPSJ3cm9uZyI+V3Jvbmc6PC9oND4KKzxwcmUgY2xhc3M9ImNvZGUi
PgorY2xhc3MgVGFzayB7CitwdWJsaWM6CisgICAgVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CisuLi4KKzwvcHJlPgorPC9saT4KKzwvb2w+CisKIDw/cGhwCiAgICAgaW5jbHVkZSgiLi4v
Zm9vdGVyLmluYyIpOwogPz4K
</data>
<flag name="review"
          id="60584"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70722</attachid>
            <date>2010-10-14 02:55:06 -0700</date>
            <delta_ts>2010-10-14 16:31:32 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>explicit.diff</filename>
            <type>text/plain</type>
            <size>1474</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFNpdGUvQ2hhbmdlTG9nIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
aW5kZXggZjU1YTU4Zi4uMTNjYmYwZiAxMDA2NDQKLS0tIGEvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wOS0zMCAg
RGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGd1aWRlbGluZSBmb3IgY29uc3RydWN0b3Jz
IGRvaW5nIGltcGxpY2l0IHR5cGUgY29udmVyc2lvbiB0byBjb2Rpbmcgc3R5bGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzY0NgorCisgICAgICAg
ICogY29kaW5nL2NvZGluZy1zdHlsZS5odG1sOgorCiAyMDEwLTEwLTAxICBBbGV4IE1hdGhld3Mg
IDxwb3NzZXNzZWRwZW5ndWluYm9iQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJLaXRTaXRlL2NvZGluZy9jb2Rpbmctc3R5bGUu
aHRtbCBiL1dlYktpdFNpdGUvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sCmluZGV4IDVhZmQ3ODAu
LjJhMzAyY2MgMTAwNjQ0Ci0tLSBhL1dlYktpdFNpdGUvY29kaW5nL2NvZGluZy1zdHlsZS5odG1s
CisrKyBiL1dlYktpdFNpdGUvY29kaW5nL2NvZGluZy1zdHlsZS5odG1sCkBAIC05MzksNiArOTM5
LDM2IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIDwvb2w+CiAKKzxoMz5DbGFzc2VzPC9oMz4K
KworPG9sPgorPGxpPgorVXNlIGEgY29uc3RydWN0b3IgdG8gZG8gYW4gaW1wbGljaXQgY29udmVy
c2lvbiB3aGVuIHRoZSBhcmd1bWVudCBpcyByZWFzb25hYmx5IHRob3VnaHQgb2YgYXMgYSB0eXBl
IGNvbnZlcnNpb24gYW5kIHRoZSB0eXBlIGNvbnZlcnNpb24gaXMgZmFzdC4gT3RoZXJ3aXNlLCB1
c2UgdGhlIGV4cGxpY2l0IGtleXdvcmQgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgdGhlIHR5cGUu
Cis8aDQgY2xhc3M9InJpZ2h0Ij5SaWdodDo8L2g0PgorPHByZSBjbGFzcz0iY29kZSI+CitjbGFz
cyBMYXJnZUludCB7CitwdWJsaWM6CisgICAgTGFyZ2VJbnQoaW50KTsKKy4uLgorCitjbGFzcyBW
ZWN0b3IgeworcHVibGljOgorICAgIGV4cGxpY2l0IFZlY3RvcihpbnQgc2l6ZSk7IC8vIE5vdCBh
IHR5cGUgY29udmVyc2lvbi4KKyAgICBQYXNzT3duUHRyPFZlY3Rvcj4gY3JlYXRlKEFycmF5KTsg
Ly8gQ29zdGx5IGNvbnZlcnNpb24uCisuLi4KKworPC9wcmU+CisKKzxoNCBjbGFzcz0id3Jvbmci
Pldyb25nOjwvaDQ+Cis8cHJlIGNsYXNzPSJjb2RlIj4KK2NsYXNzIFRhc2sgeworcHVibGljOgor
ICAgIFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworLi4uCis8L3ByZT4KKzwvbGk+Cis8
L29sPgorCiA8P3BocAogICAgIGluY2x1ZGUoIi4uL2Zvb3Rlci5pbmMiKTsKID8+Cg==
</data>
<flag name="review"
          id="60607"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="60608"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>