<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap:break-word" vlink="#954F72" link="blue" lang="NL-BE">
<font size="4"><font face="monospace">Received on the -comments
list.<br>
<br>
Summary: <br>
<br>
- Question regarding the asymmetry of true vs false boolean
constants.<br>
- Questions regarding matching of nulls in switch (fundamental
confusion: whether `case null, String s` is one thing or two)<br>
- DA treatment of assignments inside guards<br>
- questionable boxing in record patterns<br>
</font></font>
<div class="moz-forward-container"><br>
<br>
-------- Forwarded Message --------
<table class="moz-email-headers-table" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Subject:
</th>
<td>Feedback on the current state of switch pattern matching
and record patterns</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Date: </th>
<td>Sun, 19 Jun 2022 03:30:24 +0000</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">From: </th>
<td>Robbe Pincket <a class="moz-txt-link-rfc2396E" href="mailto:robbepincket@live.be"><robbepincket@live.be></a></td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">To: </th>
<td><a class="moz-txt-link-abbreviated" href="mailto:amber-spec-comments@openjdk.org">amber-spec-comments@openjdk.org</a>
<a class="moz-txt-link-rfc2396E" href="mailto:amber-spec-comments@openjdk.org"><amber-spec-comments@openjdk.org></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}@font-face
{font-family:"Segoe UI";
panose-1:2 11 5 2 4 2 4 2 2 3;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}h2
{mso-style-priority:9;
mso-style-link:"Heading 2 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
page-break-after:avoid;
font-size:13.0pt;
font-family:"Calibri Light",sans-serif;
color:#2F5496;
font-weight:normal;}h3
{mso-style-priority:9;
mso-style-link:"Heading 3 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Calibri Light",sans-serif;
color:#1F3763;
font-weight:normal;}h4
{mso-style-priority:9;
mso-style-link:"Heading 4 Char";
margin-top:2.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
page-break-after:avoid;
font-size:11.0pt;
font-family:"Calibri Light",sans-serif;
color:#2F5496;
font-weight:normal;
font-style:italic;}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}code
{mso-style-priority:99;
font-family:"Courier New";}pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0cm;
font-size:10.0pt;
font-family:"Courier New";}span.Heading2Char
{mso-style-name:"Heading 2 Char";
mso-style-priority:9;
mso-style-link:"Heading 2";
font-family:"Calibri Light",sans-serif;
color:#2F5496;}span.Heading3Char
{mso-style-name:"Heading 3 Char";
mso-style-priority:9;
mso-style-link:"Heading 3";
font-family:"Calibri Light",sans-serif;
color:#1F3763;}span.Heading4Char
{mso-style-name:"Heading 4 Char";
mso-style-priority:9;
mso-style-link:"Heading 4";
font-family:"Calibri Light",sans-serif;
color:#2F5496;
font-style:italic;}p.part, li.part, div.part
{mso-style-name:part;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Courier New";}span.token
{mso-style-name:token;}.MsoChpDefault
{mso-style-type:export-only;}div.WordSection1
{page:WordSection1;}ol
{margin-bottom:0cm;}ul
{margin-bottom:0cm;}</style>
<div class="WordSection1">
<div>
<div>
<p class="part" style="margin-bottom:12.0pt;background:white"><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Hello
amber project experts.<o:p></o:p></span></p>
<p class="part" style="margin-bottom:12.0pt;background:white"><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"><o:p> </o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white"><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">I’ve
been quite interested in recent java enhancement
projects, and while checking<br>
out some of the details of both switch pattern matching
and record patterns,<br>
I’ve noticed some things I want to address.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Looking
around, this seemed to be the latest version of the
spec, so I’ll be basing<br>
my questions off of this:<br>
<a href="https://cr.openjdk.java.net/~gbierman/jep427%2b405/jep427%2b405-20220601/specs/patterns-switch-record-patterns-jls.html" target="_blank" moz-do-not-send="true"><span style="font-size:11.0pt;color:#337AB7">https://cr.openjdk.java.net/~gbierman/jep427%2B405/jep427%2B405-20220601/specs/patterns-switch-record-patterns-jls.html</span></a><o:p></o:p></span></p>
<div style="mso-element:para-border-div;border:none;border-bottom:solid
#EEEEEE 1.0pt;padding:0cm 0cm 4.0pt 0cm;background:white">
<h2 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;border:none;padding:0cm;box-sizing:
border-box;--tw-border-opacity: 1;--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0
#0000;font-variant-ligatures: normal;font-variant-caps:
normal;orphans: 2;text-align:start;widows:
2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Switch-pattern-matching">
<span style="font-size:16.5pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Switch
pattern matching<o:p></o:p></span></h2>
</div>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Switch-syntax">
<span style="font-size:14.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Switch
syntax<o:p></o:p></span></h3>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">The
syntax section shows that a </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">CaseElement</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> can
be </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">Pattern
{Guard}</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">.<br>
This would imply that there can be multiple </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">when</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> guards
on a single pattern<o:p></o:p></span></p>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Constant-boolean-expressions-in-the-guard-expression">
<span style="font-size:14.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Constant
boolean expressions in the guard expression<o:p></o:p></span></h3>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">The
specifications mention that unlike with most guards, if
the “expression has<br>
the value true”, the dominance checking treats it just
as if it were<br>
an unguarded pattern case.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">This
raised two concerns:<o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal" style="color:#333333;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2
level1 lfo3;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">What does
‘has the value true’ mean? In my eyes, that can mean
quite a few things:<o:p></o:p></span></li>
</ul>
<ul type="disc">
<ul type="circle">
<li class="MsoNormal" style="color:#333333;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2
level2 lfo3;background:white;box-sizing:
border-box;--tw-border-opacity:
1;border-color:rgba(231, 231, 231,
var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">The
boolean literal ‘true’<o:p></o:p></span></li>
<li class="MsoNormal" style="color:#333333;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2
level2 lfo3;background:white;box-sizing:
border-box;--tw-border-opacity:
1;border-color:rgba(231, 231, 231,
var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">Any
constant expression whose value is true<o:p></o:p></span></li>
<li class="MsoNormal" style="color:#333333;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2
level2 lfo3;background:white;box-sizing:
border-box;--tw-border-opacity:
1;border-color:rgba(231, 231, 231,
var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">Any
boolean expression that always evaluates to true<o:p></o:p></span></li>
</ul>
</ul>
<ul type="disc">
<li class="MsoNormal" style="color:#333333;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2
level1 lfo3;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">This
treatment has no equivalent with guards that are
false. Considering guards that “have the value true”
as a branch that is always taken feels akin to how
constant expressions are handled in while loops,
whilst </span><code><span style="font-size:10.0pt;font-family:Consolas;letter-spacing:.25pt">while
(false)</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt"> always
fails to compile as it results in the body to be
unreachable. However, when the guard is false, the
resultant behavior mirrors a traditional if, where it
considers the body to still be reachable, even though
they can never get executed.<o:p></o:p></span></li>
</ul>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Null-labels">
<span style="font-size:14.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Null
labels<o:p></o:p></span></h3>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">I
wasn’t sure whether this was an issue at first, but
after looking at the spec again and realizing I
misinterpreted part of the spec, I’m very unsure about
whether the compiler is technically following the spec
or not; nonetheless, it’s very counterintuitive to me.
(This section is a bit more ‘ranty’ than I’d like, but
it’s getting late, and I keep discovering new weird
unexpected cases while typing)<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Let’s
look at some examples.<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:slategray;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">// example 1</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">,</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s when s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">length</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">()</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">==</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">0</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"o: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">...</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">I
was very surprised when this gave me a npe when getting
the length,<br>
as I assumed that the guard would only be evaluated when
the pattern matched,<br>
and didn’t expect the null to fall through to the guard.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">So
I tested the following:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:slategray;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">// example 2</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s when s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">length</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">()</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">==</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">0</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">,</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"o: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">...</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">This
still throws an npe. This where I decided to check the
spec in depth again.<o:p></o:p></span></p>
<blockquote style="border:none;border-left:solid #DDDDDD
3.0pt;padding:0cm 0cm 0cm
12.0pt;margin-left:0cm;margin-right:0cm;margin-bottom:12.0pt;box-sizing:
border-box;--tw-border-opacity: 1;--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<p style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#777777;letter-spacing:.25pt">If
the resulting transformed case label has both a null
case element and a pattern<br>
case element p where p is a pattern declaring a
pattern variable x of type U,<br>
then p is replaced with an any pattern that declares x
of type U (14.30.1).<o:p></o:p></span></p>
</blockquote>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">This
explains the second case, even though the </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">null</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> label
appears after.<br>
Let’s use </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">String?
s</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> as
a notation for an any pattern. The way I see the
translation of the second example is like this:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">?</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s when s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">length</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">()</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">==</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">0</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">:</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">:</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"o: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">break</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">;</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">...</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">I’m
keeping the </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">case
null</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> here
cause the spec doesn’t mention this getting removed,
which seems like a mistake to me cause it implies that
the first example gets<br>
translated as this:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">:</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> <o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">?</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s when s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">length</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">()</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">==</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">0</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">:</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"o: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">break</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">;</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">...</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">where </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">case
null</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> would
match null first and therefore </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">String?
s</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> wouldn’t
match the null.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">These
2 translations bring up the question: what if there are
2 case labels, one of<br>
which is null?<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:slategray;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">// Example 3</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s when s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">length</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">()</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">==</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">0</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">:</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">:</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"o: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">break</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">;</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">...</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Example
3 still throws an NPE when given null. This, just blew
my mind, and I think this behavior is even wrong
according to the spec. The spec mentions that if a <strong><span style="font-family:"Segoe UI",sans-serif">case
label</span></strong> contains both a null case
label element and a pattern case element, the pattern<br>
gets converted to a any pattern. However in this example
there are 2 separate <strong><span style="font-family:"Segoe UI",sans-serif">case
labels</span></strong> (but only one switch label).
Note that adding a single </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">;</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"><br>
after the first </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">:</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> results
in a variant that does work as expected, most likely<br>
cause they are now 2 separate <strong><span style="font-family:"Segoe UI",sans-serif">switch
labels</span></strong>.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">One
last example:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">static</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">void</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">example4</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Object</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> a</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">,</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Object</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> b</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">a</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">,</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s when </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Objects</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">equal</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">,</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> b</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"a & b: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"a is NULL, but b isn't"</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">default</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Objects: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> a </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">", "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> b</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">This
fails to compile, citing a “duplicate case label”,
however I can’t find anything in the spec that disallows
2 null cases in the same switch, even without the guard.
The closest thing I see is:<o:p></o:p></span></p>
<blockquote style="border:none;border-left:solid #DDDDDD
3.0pt;padding:0cm 0cm 0cm
12.0pt;margin-left:0cm;margin-right:0cm;margin-bottom:12.0pt;box-sizing:
border-box;--tw-border-opacity: 1;--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<p style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#777777;letter-spacing:.25pt">A
switch label that supports a case constant dominates
another<br>
switch label supporting the same case constant.<o:p></o:p></span></p>
</blockquote>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">null</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">,
however, is not considered a case constant - as the
guard is acting on the null case, it means the second
null case shouldn’t be dominated by the first one.
Perhpas should be a rule that doesn’t allow this, but
nothing in the current spec should disallow this, even
though javac does, in fact, disallow it.<o:p></o:p></span></p>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Definite-assignment">
<span style="font-size:14.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Definite
assignment<o:p></o:p></span></h3>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">It
seems the part on definite assignment doesn’t take into
account the possible assignments in the guard of switch
cases.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">I
thought this was gonna be a small thing to fix as javac
seemed to behave as expected despite the specification,
but then I noticed something else and ended up writing a
some code where I was able to reassign a final var.<o:p></o:p></span></p>
<h4 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Issue-1">
<span style="font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Issue
1:</span><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"><o:p></o:p></span></h4>
<blockquote style="border:none;border-left:solid #DDDDDD
3.0pt;padding:0cm 0cm 0cm
12.0pt;margin-left:0cm;margin-right:0cm;margin-bottom:12.0pt;box-sizing:
border-box;--tw-border-opacity: 1;--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<ul type="disc">
<li class="MsoNormal" style="color:#777777;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level1 lfo4;background:white;box-sizing:
border-box;--tw-border-opacity:
1;border-color:rgba(231, 231, 231,
var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">V is
[un]assigned before the switch rule expression,
switch rule block, or switch rule throw statement
introduced by a switch rule in the switch block iff
V is [un]assigned after the selector expression of
the switch statement.<o:p></o:p></span></li>
<li class="MsoNormal" style="color:#777777;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level1 lfo4;background:white;box-sizing:
border-box;--tw-border-opacity:
1;border-color:rgba(231, 231, 231,
var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">V is
[un]assigned before the first block statement of a
switch labeled statement group in the switch block
iff both of the following are true:<o:p></o:p></span></li>
</ul>
<ul type="disc">
<ul type="circle">
<li class="MsoNormal" style="color:#777777;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level2 lfo4;background:white;box-sizing:
border-box;--tw-border-opacity:
1;border-color:rgba(231, 231, 231,
var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width:
0px;--tw-ring-offset-color: #fff;--tw-ring-color:
rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">V is
[un]assigned after the selector expression of the
switch statement.<o:p></o:p></span></li>
<li class="MsoNormal" style="color:#777777;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level2 lfo4;background:white;box-sizing:
border-box;--tw-border-opacity:
1;border-color:rgba(231, 231, 231,
var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width:
0px;--tw-ring-offset-color: #fff;--tw-ring-color:
rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0 #0000">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;letter-spacing:.25pt">…<o:p></o:p></span></li>
</ul>
</ul>
</blockquote>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">If
the case is guarded, this shouldn’t be checking the
assignment status after the selector expression, but
after the guard expression when true.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">It
seems javac already does this.<o:p></o:p></span></p>
<h4 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Issue-2">
<span style="font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Issue
2:</span><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"><o:p></o:p></span></h4>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">The
naive assumption, which javac seems to be using, is that
a variable V is [un]assigned before a guard expression
iff it is [un]assigned after the selector expression.
This however is not correct. See the following snippet:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">public</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">class</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> test </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">static</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">void</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">test</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Object</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">final</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> res</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">;</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s when </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">!=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">&&</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">log</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">&&</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> s</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">length</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">()</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">3</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"res: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> res</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> i when </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"???"</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">!=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">&&</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">log</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"res: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> res</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">default</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Object: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">static</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">boolean</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">log</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> res</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"res: "</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> res</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">return</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">true</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">;</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p> </o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">public</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">static</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">void</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">main</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">String</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">[]</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> args</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">){</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Trial 1: "</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">test</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Hello"</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Trial 2: "</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">test</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Huh"</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Which
outputs:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Trial 1:<o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res: Hello<o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res: Hello<o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Trial 2:<o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res: Huh<o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res: ???<o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res: ???<o:p></o:p></span></code></pre>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">This
code compiles, even though it is reassigning a final
var.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">A
correct definition for definite (un)assignment in this
case would have to take all the pattern cases that could
have matched before it into account, and the maybe also
the fact that (some of) those cases could cover all
possible pathways to this label, like:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">A</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> a when </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Hi"</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">==</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">B</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> b when </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">res </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#669900;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">"Hello"</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">==</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">null</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">SealedAOrB</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:slategray;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">// res is now definitely assigned?</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<div style="mso-element:para-border-div;border:none;border-bottom:solid
#EEEEEE 1.0pt;padding:0cm 0cm 4.0pt 0cm;background:white">
<h2 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;border:none;padding:0cm;box-sizing:
border-box;--tw-border-opacity: 1;--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0
#0000;--tw-ring-shadow: 0 0
#0000;font-variant-ligatures: normal;font-variant-caps:
normal;orphans: 2;text-align:start;widows:
2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Record-Patterns">
<span style="font-size:16.5pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Record
Patterns<o:p></o:p></span></h2>
</div>
<h3 style="mso-margin-top-alt:18.0pt;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px" id="Integer-components">
<span style="font-size:14.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Integer
components.<o:p></o:p></span></h3>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">It
seems that when accessing </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">int</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"> fields,
it boxes them, to then immediately unbox them again.<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Example<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">o</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Point</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">var</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> x</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">,</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">var</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> y</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">x </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> y</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">...</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">compiles
into something like:<o:p></o:p></span></p>
<pre style="background:#F7F7F7;box-sizing: border-box;--tw-border-opacity: 1;border:inherit !important;--tw-shadow: 0 0 #0000;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;overflow-wrap: normal;border-radius: 3px;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow:auto;word-spacing:0px"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">var1 </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> o<o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">switch</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">indy typeswitch</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">case</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#990055;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">0</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">-></span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">{</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">int</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> var5 </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> $proxy$</span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">x</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">((</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Point</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> var1</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">int</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> var3 </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Integer</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">valueOf</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">var5</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">).</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">intValue</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">();</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> var5 </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> $proxy$</span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">y</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">((</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Point</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> var1</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">);</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#0077AA;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">int</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> var4 </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">=</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">Integer</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">valueOf</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">var5</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">).</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">intValue</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">();</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> <o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">System</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">out</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">.</span></span><span class="token"><span style="font-family:Consolas;color:#DD4A68;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">println</span></span><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">(</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">var3 </span></code><span class="token"><span style="font-family:Consolas;color:#9A6E3A;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">+</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> var4</span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">)</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<pre style="background:#F7F7F7"><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"> </span></code><span class="token"><span style="font-family:Consolas;color:#999999;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm">}</span></span><code><span style="font-family:Consolas;color:#333333;letter-spacing:.25pt;border:none windowtext 1.0pt;padding:0cm"><o:p></o:p></span></code></pre>
<p class="part" style="margin:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">I
gave a quick look to the code in </span><code><span style="font-size:10.0pt;font-family:Consolas;color:#333333;letter-spacing:.25pt">TransPattern</span></code><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">,
but couldn’t actually find anything about it. Seems like
something that gets triggered by accident?<o:p></o:p></span></p>
<p class="part" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Hope
all of this helps with improving the language!<o:p></o:p></span></p>
<p class="part" style="margin-top:0cm;background:white;box-sizing:
border-box;--tw-border-opacity: 1;border-color:rgba(231,
231, 231, var(--tw-border-opacity));--tw-shadow: 0 0
#0000;--tw-ring-inset: var(--tw-empty,
);--tw-ring-offset-width: 0px;--tw-ring-offset-color:
#fff;--tw-ring-color: rgba(59, 130, 246,
0.5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow:
0 0 #0000;font-variant-ligatures:
normal;font-variant-caps: normal;orphans:
2;text-align:start;widows: 2;-webkit-text-stroke-width:
0px;text-decoration-thickness:
initial;text-decoration-style:
initial;text-decoration-color: initial;word-spacing:0px">
<span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt">Greetings<br>
Robbe Pincket<o:p></o:p></span></p>
</div>
<p class="part" style="margin-bottom:12.0pt;background:white"><span style="font-size:12.0pt;font-family:"Segoe
UI",sans-serif;color:#333333;letter-spacing:.25pt"><o:p> </o:p></span></p>
</div>
</div>
</div>
</body>
</html>