Skip to content

Commit 6ac261b

Browse files
committed
Disallow dictionaries from being nullable only as operation argument types.
1 parent 1f063fe commit 6ac261b

File tree

5 files changed

+39
-51
lines changed

5 files changed

+39
-51
lines changed

Overview.html

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<head>
1212
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
1313
<title>Web IDL (Second Edition)</title>
14-
<meta name="revision" content="$Id: Overview.html,v 1.565 2012-11-28 22:22:15 cmccorma Exp $" />
14+
<meta name="revision" content="$Id: Overview.html,v 1.566 2012-11-28 22:47:53 cmccorma Exp $" />
1515
<link rel="stylesheet" href="WebIDL.css" type="text/css" />
1616
<script src="section-links.js" type="application/ecmascript"></script>
1717
<script src="dfn.js" type="application/ecmascript"></script>
@@ -1557,9 +1557,6 @@ <h4>3.2.3. Operations</h4>
15571557
then the identifier <span class="rfc2119">MUST</span>
15581558
identify an interface, dictionary, <a class="dfnref" href="#dfn-enumeration">enumeration</a>,
15591559
<a class="dfnref" href="#dfn-callback-function">callback function</a> or <a class="dfnref" href="#dfn-typedef">typedef</a>.
1560-
If the return type is an <a class="dfnref" href="#dfn-identifier">identifier</a>
1561-
not followed by <code>?</code>, then the identifier <span class="rfc2119">MUST</span>
1562-
identify any one of those definitions or a <a class="dfnref" href="#dfn-dictionary">dictionary</a>.
15631560
</p>
15641561
<p>
15651562
An operation’s arguments (matching <a class="sym" href="#prod-ArgumentList">ArgumentList</a>)
@@ -4052,11 +4049,8 @@ <h3>3.3. Dictionaries</h3>
40524049
is an <a class="dfnref" href="#dfn-identifier">identifier</a>
40534050
followed by <code>?</code>, then the identifier
40544051
<span class="rfc2119">MUST</span> identify an
4055-
interface, <a class="dfnref" href="#dfn-enumeration">enumeration</a>,
4052+
interface, dictionary, <a class="dfnref" href="#dfn-enumeration">enumeration</a>,
40564053
<a class="dfnref" href="#dfn-callback-function">callback function</a> or <a class="dfnref" href="#dfn-typedef">typedef</a>.
4057-
If the dictionary member type is an identifier
4058-
not followed by <code>?</code>, then the the identifier <span class="rfc2119">MUST</span>
4059-
identify any one of those definitions or a <a class="dfnref" href="#dfn-dictionary">dictionary</a>.
40604054
</p>
40614055
<pre class="syntax">dictionary <i>identifier</i> {
40624056
<i>type</i> <i>identifier</i>;
@@ -5609,12 +5603,16 @@ <h4>3.10.22. Nullable types — <var>T</var>?</h4>
56095603
to be a member of its set of values. <a class="dfnref" href="#dfn-nullable-type">Nullable types</a>
56105604
are represented in IDL by placing a <span class="char">U+003F QUESTION MARK ("?")</span>
56115605
character after an existing type. The inner type <span class="rfc2119">MUST NOT</span>
5612-
be <a class="idltype" href="#idl-any">any</a>, a <a href="#idl-dictionary">dictionary type</a>,
5606+
be <a class="idltype" href="#idl-any">any</a>,
56135607
another nullable type, or a <a class="dfnref" href="#dfn-union-type">union type</a>
56145608
that itself has <a class="dfnref" href="#dfn-includes-a-nullable-type">includes a nullable type</a>
56155609
or has a dictionary type as one of its
56165610
<a class="dfnref" href="#dfn-flattened-member-type">flattened member types</a>.
56175611
</p>
5612+
<div class="note"><div class="noteHeader">Note</div>
5613+
<p>Although dictionary types can in general be nullable, they cannot when used
5614+
as the type of an operation argument.</p>
5615+
</div>
56185616
<p>
56195617
Nullable type constant values in IDL are represented in the same way that
56205618
constant values of their <a class="dfnref" href="#dfn-inner-type">inner type</a>
@@ -12971,8 +12969,7 @@ <h2>C. Changes</h2>
1297112969
<li>
1297212970
<p>
1297312971
Clarified that dictionaries may not be nullable when used as
12974-
the type of a dictionary member, operation return type or
12975-
operation argument.
12972+
the type of an operation argument.
1297612973
</p>
1297712974
</li>
1297812975
<li>

Overview.xml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<head>
1616
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
1717
<title>Web IDL (Second Edition)</title>
18-
<meta name='revision' content='$Id: Overview.xml,v 1.569 2012-11-28 22:22:15 cmccorma Exp $'/>
18+
<meta name='revision' content='$Id: Overview.xml,v 1.570 2012-11-28 22:47:53 cmccorma Exp $'/>
1919
<link rel='stylesheet' href='WebIDL.css' type='text/css'/>
2020
<script src='section-links.js' type='application/ecmascript'/>
2121
<script src='dfn.js' type='application/ecmascript'/>
@@ -1509,9 +1509,6 @@ interface Person : Animal {
15091509
then the identifier <span class='rfc2119'>MUST</span>
15101510
identify an interface, dictionary, <a class='dfnref' href='#dfn-enumeration'>enumeration</a>,
15111511
<a class='dfnref' href='#dfn-callback-function'>callback function</a> or <a class='dfnref' href='#dfn-typedef'>typedef</a>.
1512-
If the return type is an <a class='dfnref' href='#dfn-identifier'>identifier</a>
1513-
not followed by <code>?</code>, then the identifier <span class='rfc2119'>MUST</span>
1514-
identify any one of those definitions or a <a class='dfnref' href='#dfn-dictionary'>dictionary</a>.
15151512
</p>
15161513
<p>
15171514
An operation’s arguments (matching <a class='sym' href='#prod-ArgumentList'>ArgumentList</a>)
@@ -3943,11 +3940,8 @@ dictionary <i>Derived</i> : <em>Base</em> {
39433940
is an <a class='dfnref' href='#dfn-identifier'>identifier</a>
39443941
followed by <code>?</code>, then the identifier
39453942
<span class='rfc2119'>MUST</span> identify an
3946-
interface, <a class='dfnref' href='#dfn-enumeration'>enumeration</a>,
3943+
interface, dictionary, <a class='dfnref' href='#dfn-enumeration'>enumeration</a>,
39473944
<a class='dfnref' href='#dfn-callback-function'>callback function</a> or <a class='dfnref' href='#dfn-typedef'>typedef</a>.
3948-
If the dictionary member type is an identifier
3949-
not followed by <code>?</code>, then the the identifier <span class='rfc2119'>MUST</span>
3950-
identify any one of those definitions or a <a class='dfnref' href='#dfn-dictionary'>dictionary</a>.
39513945
</p>
39523946
<pre class='syntax'>dictionary <i>identifier</i> {
39533947
<i>type</i> <i>identifier</i>;
@@ -5463,12 +5457,16 @@ interface Person {
54635457
to be a member of its set of values. <a class='dfnref' href='#dfn-nullable-type'>Nullable types</a>
54645458
are represented in IDL by placing a <span class='char'>U+003F QUESTION MARK ("?")</span>
54655459
character after an existing type. The inner type <span class='rfc2119'>MUST NOT</span>
5466-
be <span class='idltype'>any</span>, a <a href='#idl-dictionary'>dictionary type</a>,
5460+
be <span class='idltype'>any</span>,
54675461
another nullable type, or a <a class='dfnref' href='#dfn-union-type'>union type</a>
54685462
that itself has <a class='dfnref' href='#dfn-includes-a-nullable-type'>includes a nullable type</a>
54695463
or has a dictionary type as one of its
54705464
<a class='dfnref' href='#dfn-flattened-member-type'>flattened member types</a>.
54715465
</p>
5466+
<div class="note">
5467+
<p>Although dictionary types can in general be nullable, they cannot when used
5468+
as the type of an operation argument.</p>
5469+
</div>
54725470
<p>
54735471
Nullable type constant values in IDL are represented in the same way that
54745472
constant values of their <a class='dfnref' href='#dfn-inner-type'>inner type</a>
@@ -12758,8 +12756,7 @@ d.type = et;
1275812756
<li>
1275912757
<p>
1276012758
Clarified that dictionaries may not be nullable when used as
12761-
the type of a dictionary member, operation return type or
12762-
operation argument.
12759+
the type of an operation argument.
1276312760
</p>
1276412761
</li>
1276512762
<li>

java.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<head>
1212
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
1313
<title>Java language binding for Web IDL</title>
14-
<meta name="revision" content="$Id: java.html,v 1.51 2012-09-19 15:45:01 cmccorma Exp $" />
14+
<meta name="revision" content="$Id: java.html,v 1.52 2012-11-28 22:47:53 cmccorma Exp $" />
1515
<link rel="stylesheet" href="WebIDL.css" type="text/css" />
1616
<script src="section-links.js" type="application/ecmascript"></script>
1717
<script src="dfn.js" type="application/ecmascript"></script>
@@ -20,7 +20,7 @@
2020
<link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED" type="text/css" /></head>
2121

2222
<body>
23-
<div class="head"><div><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" width="72" height="48" alt="W3C" /></a></div><h1>Java language binding for Web IDL</h1><h2>W3C Editor’s Draft <em>20 September 2012</em></h2><dl><dt>This Version:</dt><dd><a href="http://dev.w3.org/2006/webapi/WebIDL/java.html">http://dev.w3.org/2006/webapi/WebIDL/java.html</a></dd><dt>Latest Version:</dt><dd><a href="http://www.w3.org/TR/WebIDL-Java/">http://www.w3.org/TR/WebIDL-Java/</a></dd><dt>Editor:</dt><dd><a href="http://mcc.id.au/">Cameron McCormack</a>, Mozilla Corporation &lt;[email protected]&gt;</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 2012 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup> (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr />
23+
<div class="head"><div><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" width="72" height="48" alt="W3C" /></a></div><h1>Java language binding for Web IDL</h1><h2>W3C Editor’s Draft <em>29 November 2012</em></h2><dl><dt>This Version:</dt><dd><a href="http://dev.w3.org/2006/webapi/WebIDL/java.html">http://dev.w3.org/2006/webapi/WebIDL/java.html</a></dd><dt>Latest Version:</dt><dd><a href="http://www.w3.org/TR/WebIDL-Java/">http://www.w3.org/TR/WebIDL-Java/</a></dd><dt>Editor:</dt><dd><a href="http://mcc.id.au/">Cameron McCormack</a>, Mozilla Corporation &lt;[email protected]&gt;</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 2012 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup> (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr />
2424

2525
<div class="section">
2626
<h2>Abstract</h2>
@@ -39,7 +39,7 @@ <h2>Status of This Document</h2>
3939
report can be found in the <a href="http://www.w3.org/TR/">W3C technical
4040
reports index</a> at http://www.w3.org/TR/.
4141
</em></p><p>
42-
This document is the 20 September 2012 <b>Editor’s Draft</b> of the
42+
This document is the 29 November 2012 <b>Editor’s Draft</b> of the
4343
<cite>Java language binding for Web IDL</cite> specification.
4444

4545
Please send comments about this document to

0 commit comments

Comments
 (0)