Skip to content

Instantly share code, notes, and snippets.

@jjergus
Created November 13, 2020 22:51
Show Gist options
  • Save jjergus/ccae9b42ffb39b6847b2ad6ec4fbe5c5 to your computer and use it in GitHub Desktop.
Save jjergus/ccae9b42ffb39b6847b2ad6ec4fbe5c5 to your computer and use it in GitHub Desktop.
build-old-vs-new.patch
diff -ur build-old/final/build_id.txt build-final2/final/build_id.txt
--- build-old/final/build_id.txt 2020-11-13 12:41:51.389101524 -0800
+++ build-final2/final/build_id.txt 2020-11-13 14:30:18.697239577 -0800
@@ -1 +1 @@
-HHVM=HHVM-4.83.0:HSL=v4.41.0:2020-11-13T12:41:00-0800:1fa47f258c6b68f8ec01899aa82fd6ffa0957109
+HHVM=HHVM-4.83.0:HSL=v4.41.0:2020-11-13T14:25:10-0800:1fa47f258c6b68f8ec01899aa82fd6ffa0957109
diff -ur build-old/final/guides-html/hack/asynchronous-operations/examples.html build-final2/final/guides-html/hack/asynchronous-operations/examples.html
--- build-old/final/guides-html/hack/asynchronous-operations/examples.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/asynchronous-operations/examples.html 2020-11-13 14:30:18.785246371 -0800
@@ -143,9 +143,9 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>YAFZCOPXWHNMIQUJLGRTVBEKSD 40
-XGBLREYOWSMCDVUTZJQPHKAFIN 39
-FBZIUYGQROKMVASLCTWNPDHEJX 39
+<pre><code>KSZQPTMFREIULGHXDNOCYVBJAW 11
+EWCMHAOGDBTKSZQPJURVILYNXF 13
+DXAOPBRWUFHQLKYZNMSGCJIVET 45
</code></pre>
</div>
<h2 class="headingWithAnchor" id="batching">Batching<a href="#batching"><i class="glyphIcon fa fa-link"></i></a></h2>
@@ -214,8 +214,8 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>EADBFC
-ABECDF
+<pre><code>FDCEAB
+DFCBAE
</code></pre>
</div>
<h2 class="headingWithAnchor" id="polling">Polling<a href="#polling"><i class="glyphIcon fa fa-link"></i></a></h2>
diff -ur build-old/final/guides-html/hack/asynchronous-operations/exceptions.html build-final2/final/guides-html/hack/asynchronous-operations/exceptions.html
--- build-old/final/guides-html/hack/asynchronous-operations/exceptions.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/asynchronous-operations/exceptions.html 2020-11-13 14:30:18.785246371 -0800
@@ -27,11 +27,11 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Fatal error: Uncaught exception 'Exception' with message 'Return exception handle' in /home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/basic-exception.php:6
+<pre><code>Fatal error: Uncaught exception 'Exception' with message 'Return exception handle' in /home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/basic-exception.php:6
Stack trace:
-#0 /home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/basic-exception.php(14): Hack\UserDocumentation\AsyncOps\Exceptions\Examples\BasicException\exception_thrower()
-#1 /home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/basic-exception.php(19): Hack\UserDocumentation\AsyncOps\Exceptions\Examples\BasicException\basic_exception()
-#2 (): Hack\UserDocumentation\AsyncOps\Exceptions\Examples\BasicException\main()
+#0 /home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/basic-exception.php(14): HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\BasicException\exception_thrower()
+#1 /home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/basic-exception.php(21): HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\BasicException\basic_exception()
+#2 (): HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\BasicException\main()
#3 {main}
</code></pre>
</div>
@@ -62,11 +62,11 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Fatal error: Uncaught exception 'Exception' with message 'Return exception handle' in /home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/multiple-awaitable-exception.php:7
+<pre><code>Fatal error: Uncaught exception 'Exception' with message 'Return exception handle' in /home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/multiple-awaitable-exception.php:8
Stack trace:
-#0 /home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/multiple-awaitable-exception.php(15): Hack\UserDocumentation\AsyncOps\Exceptions\Examples\MultipleAwaitable\exception_thrower()
-#1 /home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/multiple-awaitable-exception.php(24): Hack\UserDocumentation\AsyncOps\Exceptions\Examples\MultipleAwaitable\multiple_waithandle_exception()
-#2 (): Hack\UserDocumentation\AsyncOps\Exceptions\Examples\MultipleAwaitable\main()
+#0 /home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/multiple-awaitable-exception.php(16): HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\MultipleAwaitableException\exception_thrower()
+#1 /home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/multiple-awaitable-exception.php(27): HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\MultipleAwaitableException\multiple_waithandle_exception()
+#2 (): HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\MultipleAwaitableException\main()
#3 {main}
</code></pre>
</div>
@@ -114,9 +114,9 @@
<em>Output</em>
<div class="highlight fbgfm">
<pre><code>vec(2) {
- object(HH\Asio\WrappedException)#5 (1) {
+ object(HH\Asio\WrappedException) (1) {
[&quot;exception&quot;:&quot;HH\Asio\WrappedException&quot;:private]=&gt;
- object(Exception)#3 (8) {
+ object(Exception) (8) {
[&quot;message&quot;:protected]=&gt;
string(0) &quot;&quot;
[&quot;string&quot;:&quot;Exception&quot;:private]=&gt;
@@ -124,33 +124,30 @@
[&quot;code&quot;:protected]=&gt;
int(0)
[&quot;file&quot;:protected]=&gt;
- string(128) &quot;/home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/wrapping-exceptions.php&quot;
+ string(128) &quot;/home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/wrapping-exceptions.php&quot;
[&quot;line&quot;:protected]=&gt;
- int(9)
+ int(8)
[&quot;trace&quot;:&quot;Exception&quot;:private]=&gt;
- array(3) {
- [0]=&gt;
- array(3) {
+ varray(3) {
+ darray(3) {
[&quot;file&quot;]=&gt;
- string(128) &quot;/home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/wrapping-exceptions.php&quot;
+ string(128) &quot;/home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/wrapping-exceptions.php&quot;
[&quot;line&quot;]=&gt;
int(17)
[&quot;function&quot;]=&gt;
- string(78) &quot;Hack\UserDocumentation\AsyncOps\Exceptions\Examples\Wrapping\exception_thrower&quot;
+ string(105) &quot;HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\WrappingExceptions\exception_thrower&quot;
}
- [1]=&gt;
- array(3) {
+ darray(3) {
[&quot;file&quot;]=&gt;
- string(128) &quot;/home/ubuntu/user-documentation-2018-09-07/guides/hack/09-asynchronous-operations/10-exceptions-examples/wrapping-exceptions.php&quot;
+ string(128) &quot;/home/example/user-documentation/guides/hack/15-asynchronous-operations/10-exceptions-examples/wrapping-exceptions.php&quot;
[&quot;line&quot;]=&gt;
- int(27)
+ int(30)
[&quot;function&quot;]=&gt;
- string(80) &quot;Hack\UserDocumentation\AsyncOps\Exceptions\Examples\Wrapping\wrapping_exceptions&quot;
+ string(107) &quot;HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\WrappingExceptions\wrapping_exceptions&quot;
}
- [2]=&gt;
- array(1) {
+ darray(1) {
[&quot;function&quot;]=&gt;
- string(65) &quot;Hack\UserDocumentation\AsyncOps\Exceptions\Examples\Wrapping\main&quot;
+ string(92) &quot;HHVM\UserDocumentation\Guides\Hack\AsynchronousOperations\Exceptions\WrappingExceptions\main&quot;
}
}
[&quot;previous&quot;:&quot;Exception&quot;:private]=&gt;
@@ -159,7 +156,7 @@
NULL
}
}
- object(HH\Asio\WrappedResult)#8 (1) {
+ object(HH\Asio\WrappedResult) (1) {
[&quot;result&quot;:&quot;HH\Asio\WrappedResult&quot;:private]=&gt;
int(2)
}
diff -ur build-old/final/guides-html/hack/asynchronous-operations/extensions.html build-final2/final/guides-html/hack/asynchronous-operations/extensions.html
--- build-old/final/guides-html/hack/asynchronous-operations/extensions.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/asynchronous-operations/extensions.html 2020-11-13 14:30:18.785246371 -0800
@@ -278,8 +278,8 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>CFEADB
-EDBACF
-CBDEFA
+<pre><code>AEDFBC
+ECDABF
+BFACDE
</code></pre>
</div>
diff -ur build-old/final/guides-html/hack/asynchronous-operations/generators.html build-final2/final/guides-html/hack/asynchronous-operations/generators.html
--- build-old/final/guides-html/hack/asynchronous-operations/generators.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/asynchronous-operations/generators.html 2020-11-13 14:30:18.785246371 -0800
@@ -107,19 +107,19 @@
}
varray(2) {
int(1)
- string(7) &quot;GACFBDE&quot;
+ string(7) &quot;CAFBDEG&quot;
}
varray(2) {
int(2)
- string(7) &quot;DEBGACF&quot;
+ string(7) &quot;DFBECGA&quot;
}
varray(2) {
int(3)
- string(7) &quot;CEBAFDG&quot;
+ string(7) &quot;AEDBFCG&quot;
}
varray(2) {
int(4)
- string(7) &quot;BGDFAEC&quot;
+ string(7) &quot;CFEBADG&quot;
}
</code></pre>
</div>
@@ -182,11 +182,11 @@
}
varray(2) {
int(1)
- string(7) &quot;FGEBDAC&quot;
+ string(7) &quot;BADGCFE&quot;
}
varray(2) {
int(2)
- string(7) &quot;CBEAFGD&quot;
+ string(7) &quot;EACDGFB&quot;
}
string(15) &quot;Id of 3 is bad!&quot;
varray(2) {
@@ -195,7 +195,7 @@
}
varray(2) {
int(4)
- string(7) &quot;GFDCABE&quot;
+ string(7) &quot;BGACFED&quot;
}
</code></pre>
</div>
diff -ur build-old/final/guides-html/hack/asynchronous-operations/guidelines.html build-final2/final/guides-html/hack/asynchronous-operations/guidelines.html
--- build-old/final/guides-html/hack/asynchronous-operations/guidelines.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/asynchronous-operations/guidelines.html 2020-11-13 14:30:18.785246371 -0800
@@ -91,7 +91,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>string(13) &quot;FIBDHGEACJ332&quot;
+<pre><code>string(13) &quot;IFCJAHBDEG332&quot;
</code></pre>
</div>
<p>In the above example, the loop is doing two things:</p>
@@ -122,9 +122,7 @@
async function load_users_no_loop(vec&lt;int&gt; $ids): Awaitable&lt;vec&lt;User&gt;&gt; {
return await Vec\map_async(
$ids,
- fun(
- '\Hack\UserDocumentation\AsyncOps\Guidelines\Examples\AwaitNoLoop\load_user',
- ),
+ async $id ==&gt; await load_user($id),
);
}
@@ -138,7 +136,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>string(13) &quot;EHDGACJIBF332&quot;
+<pre><code>string(13) &quot;EDIJHAFBGC332&quot;
</code></pre>
</div>
<h2 class="headingWithAnchor" id="considering-data-dependencies-is-important">Considering Data Dependencies Is Important<a href="#considering-data-dependencies-is-important"><i class="glyphIcon fa fa-link"></i></a></h2>
@@ -222,9 +220,9 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>AHSBKVUJNLMCORTFIZPYXWQGED 17
-IKWBJVZORHCPFLNEAYSGUQDTMX 39
-BXRUAQLYPNOHMWJEVTFSDZIGCK 0
+<pre><code>SEDNYXIJVPULFQTKRGMOCHZWBA 34
+CEJLTRAMUKOPDYBVSZNWHQXIFG 3
+CEPQVAYHKNTXWMLBDGOIUJFZSR 46
</code></pre>
</div>
<p>The above example follows our flow:</p>
@@ -300,8 +298,8 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>FDECAB
-FEACBD
+<pre><code>FBDECA
+FDAECB
</code></pre>
</div>
<p>In the example above, we reduce the number of roundtrips to the server containing the data information to two by batching the first lookup
@@ -465,7 +463,10 @@
with the <a href="utility-functions">async utility helpers</a>. For example, look how the following three ways to accomplish the same thing can be
shortened using lambdas.</p>
<div class="highlight fbgfm source-language-Hack">
-<pre><code class="language-PHP">async function fourth_root(num $n): Awaitable&lt;float&gt; {
+<pre><code class="language-PHP">namespace Hack\UserDocumentation\AsyncOps\Guidelines\Examples\Lambdas;
+use namespace HH\Lib\Vec;
+
+async function fourth_root(num $n): Awaitable&lt;float&gt; {
return \sqrt(\sqrt((float)$n));
}
diff -ur build-old/final/guides-html/hack/asynchronous-operations/some-basics.html build-final2/final/guides-html/hack/asynchronous-operations/some-basics.html
--- build-old/final/guides-html/hack/asynchronous-operations/some-basics.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/asynchronous-operations/some-basics.html 2020-11-13 14:30:18.785246371 -0800
@@ -111,7 +111,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Total time taken: 1.050155878067 seconds
+<pre><code>Total time taken: 0.11836791038513 seconds
</code></pre>
</div>
<p>In the example above, the call to <code>curl_exec</code> in <code>curl_A</code> is blocking any other processing. Thus, even though <code>curl_B</code> is an independent call
@@ -144,7 +144,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Total time taken: 0.74790596961975 seconds
+<pre><code>Total time taken: 0.083731889724731 seconds
</code></pre>
</div>
<p>The async version allows the scheduler to run other code while waiting for a response from cURL. The most likely behavior is that as we're
diff -ur build-old/final/guides-html/hack/attributes/predefined-attributes.html build-final2/final/guides-html/hack/attributes/predefined-attributes.html
--- build-old/final/guides-html/hack/attributes/predefined-attributes.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/attributes/predefined-attributes.html 2020-11-13 14:30:18.785246371 -0800
@@ -234,8 +234,8 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Hack\UserDocumentation\Attributes\__MockClass\Examples\MockClass\MockFinalClass::f
-Hack\UserDocumentation\Attributes\__MockClass\Examples\MockClass\FinalClass::f
+<pre><code>HHVM\UserDocumentation\Guides\Hack\Attributes\PredefinedAttributes\Mock\MockFinalClass::f
+HHVM\UserDocumentation\Guides\Hack\Attributes\PredefinedAttributes\Mock\FinalClass::f
</code></pre>
</div>
<p>Mock classes <em>cannot</em> extend types <code>vec</code>, <code>dict</code>, and <code>keyset</code>, or the Hack legacy types <a href="/hack/reference/class/HH.Vector/"><code>Vector</code></a>, <a href="/hack/reference/class/HH.Map/"><code>Map</code></a>, and <a href="/hack/reference/class/HH.Set/"><code>Set</code></a>.</p>
diff -ur build-old/final/guides-html/hack/built-in-types/darray-varray-runtime-options.html build-final2/final/guides-html/hack/built-in-types/darray-varray-runtime-options.html
--- build-old/final/guides-html/hack/built-in-types/darray-varray-runtime-options.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/built-in-types/darray-varray-runtime-options.html 2020-11-13 14:30:18.785246371 -0800
@@ -177,9 +177,9 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Notice: Hack Array Compat: dict is shape in /Users/fredemmott/code/user-documentation/guides/hack/11-built-in-types/56-darray-varray-runtime-options-examples/hack_arr_is_shape_tuple_notices.php on line 7
+<pre><code>Notice: Hack Array Compat: dict is shape in /home/example/user-documentation/guides/hack/11-built-in-types/56-darray-varray-runtime-options-examples/hack_arr_is_shape_tuple_notices.php on line 9
-Notice: Hack Array Compat: vec is tuple in /Users/fredemmott/code/user-documentation/guides/hack/11-built-in-types/56-darray-varray-runtime-options-examples/hack_arr_is_shape_tuple_notices.php on line 8
+Notice: Hack Array Compat: vec is tuple in /home/example/user-documentation/guides/hack/11-built-in-types/56-darray-varray-runtime-options-examples/hack_arr_is_shape_tuple_notices.php on line 10
</code></pre>
</div>
<h2 class="headingWithAnchor" id="check-array-key-cast">Check array key cast<a href="#check-array-key-cast"><i class="glyphIcon fa fa-link"></i></a></h2>
diff -ur build-old/final/guides-html/hack/built-in-types/dynamic.html build-final2/final/guides-html/hack/built-in-types/dynamic.html
--- build-old/final/guides-html/hack/built-in-types/dynamic.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/built-in-types/dynamic.html 2020-11-13 14:30:18.785246371 -0800
@@ -57,7 +57,7 @@
</code></pre>
</div>
<p>Unions with dynamic are also allowed to coerce to enforceable types provided that each element of the union can coerce.</p>
-<div class="highlight fbgfm source-language-hack">
+<div class="highlight fbgfm source-language-Hack">
<pre><code class="language-PHP">&lt;?hh
function expect_int(int $i): void {}
@@ -77,14 +77,4 @@
}
</code></pre>
</div>
-<em>Typechecker output</em>
-<div class="highlight fbgfm">
-<pre><code>File &quot;/home/example/coercion_from_union.php&quot;, line 16, characters 17-18:
-Invalid argument (Typing[4110])
-File &quot;/home/example/coercion_from_union.php&quot;, line 4, characters 24-29:
-Expected `string`
-File &quot;/home/example/coercion_from_union.php&quot;, line 6, characters 38-40:
-But got `int`
-</code></pre>
-</div>
<p>Notably, unlike subtyping, coercion is <em>not</em> transitive, meaning that <code>int ~&gt; dynamic</code> and <code>dynamic ~&gt; string</code> does not imply that <code>int ~&gt; string</code>.</p>
diff -ur build-old/final/guides-html/hack/built-in-types/enumerated-types.html build-final2/final/guides-html/hack/built-in-types/enumerated-types.html
--- build-old/final/guides-html/hack/built-in-types/enumerated-types.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/built-in-types/enumerated-types.html 2020-11-13 14:30:18.785246371 -0800
@@ -83,22 +83,16 @@
<p>All enumerated types behave as if they contain a set of public static methods.</p>
<p>Here is an example that uses several of these methods:</p>
<div class="highlight fbgfm source-language-Hack">
-<pre><code class="language-PHP">use Hack\UserDocumentation\Types\Enums\Examples\Positions\Position as Position;
-
-&lt;&lt;__EntryPoint&gt;&gt;
-function main(): void {
- require_once(&quot;Positions.inc.php&quot;);
- $names = Position::getNames();
- echo &quot; Position::getNames() ---\n&quot;;
- foreach ($names as $key =&gt; $value) {
- echo &quot;\tkey &gt;$key&lt; has value &gt;$value&lt;\n&quot;;
- }
+<pre><code class="language-PHP">$names = Position::getNames();
+echo &quot; Position::getNames() ---\n&quot;;
+foreach ($names as $key =&gt; $value) {
+ echo &quot;\tkey &gt;$key&lt; has value &gt;$value&lt;\n&quot;;
+}
- $values = Position::getValues();
- echo &quot;Position::getValues() ---\n&quot;;
- foreach ($values as $key =&gt; $value) {
- echo &quot;\tkey &gt;$key&lt; has value &gt;$value&lt;\n&quot;;
- }
+$values = Position::getValues();
+echo &quot;Position::getValues() ---\n&quot;;
+foreach ($values as $key =&gt; $value) {
+ echo &quot;\tkey &gt;$key&lt; has value &gt;$value&lt;\n&quot;;
}
</code></pre>
</div>
diff -ur build-old/final/guides-html/hack/built-in-types/nothing.html build-final2/final/guides-html/hack/built-in-types/nothing.html
--- build-old/final/guides-html/hack/built-in-types/nothing.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/built-in-types/nothing.html 2020-11-13 14:30:18.785246371 -0800
@@ -76,10 +76,10 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Fatal error: Uncaught Error: NOT IMPLEMENTED: `undefined` can not be produced. in /path/to/undefined.hack:8
+<pre><code>Fatal error: Uncaught Error: NOT IMPLEMENTED: `undefined` can not be produced. in /home/example/user-documentation/guides/hack/11-built-in-types/74-nothing-examples/undefined.php:8
Stack trace:
-#0 /path/to/using-undefined.hack(29): undefined()
-#1 (): main_async()
+#0 /home/example/user-documentation/guides/hack/11-built-in-types/74-nothing-examples/undefined.usage.php(17): HHVM\UserDocumentation\Guides\Hack\BuiltInTypes\Nothing\Undefined\undefined()
+#1 (): HHVM\UserDocumentation\Guides\Hack\BuiltInTypes\Nothing\Undefined\main_async()
#2 (): Closure$__SystemLib\enter_async_entry_point()
#3 (): HH\Asio\join()
#4 (): __SystemLib\enter_async_entry_point()
diff -ur build-old/final/guides-html/hack/classes/trait-and-interface-requirements.html build-final2/final/guides-html/hack/classes/trait-and-interface-requirements.html
--- build-old/final/guides-html/hack/classes/trait-and-interface-requirements.html 2020-11-13 12:41:51.465106982 -0800
+++ build-final2/final/guides-html/hack/classes/trait-and-interface-requirements.html 2020-11-13 14:30:18.785246371 -0800
@@ -57,7 +57,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>object(Hack\UserDocumentation\OtherFeatures\TIR\Examples\TraitReqGood\AirBus)#1 (0) {
+<pre><code>object(HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\TraitGood\AirBus) (0) {
}
bool(true)
</code></pre>
@@ -108,9 +108,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Fatal error: Uncaught Error: Class 'Hack\UserDocumentation\Classes\TIR\Examples\TraitReqBad\Paper' required to extend class 'Hack\UserDocumentation\Classes\TIR\Examples\TraitReqBad\Machine' by trait 'Hack\UserDocumentation\Classes\TIR\Examples\TraitReqBad\Plane' in /home/ubuntu/user-documentation-2018-09-07/guides/hack/07-classes/31-trait-and-interface-requirements-examples/trait-bad.php:30
-Stack trace:
-#0 {main}
+<pre><code>Fatal error: Class 'HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\TraitBad\Paper' required to extend class 'HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\TraitBad\Machine' by trait 'HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\TraitBad\Plane' in /home/example/user-documentation/guides/hack/06-classes/28-trait-and-interface-requirements-examples/trait-bad.php.type-errors on line 30
</code></pre>
</div>
<p><strong>NOTE</strong>: <code>require extends</code> should be taken literally. The class <em>must</em> extend the required class; thus the actual required class
@@ -153,7 +151,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>object(Hack\UserDocumentation\Classes\TIR\Examples\InterfaceReqGood\AirBus)#1 (0) {
+<pre><code>object(HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\InterfaceGood\AirBus) (0) {
}
bool(true)
</code></pre>
@@ -194,6 +192,6 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Fatal error: Class 'Hack\UserDocumentation\Classes\TIR\Examples\InterfaceReqBad\Paper' required to extend class 'Hack\UserDocumentation\Classes\TIR\Examples\InterfaceReqBad\Machine' by interface 'Hack\UserDocumentation\Classes\TIR\Examples\InterfaceReqBad\Fliers' in /data/users/joelm/user-documentation/guides/hack/47-other-features/03-trait-and-interface-requirements-examples/interface-bad.php.type-errors on line 21
+<pre><code>Fatal error: Class 'HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\InterfaceBad\Paper' required to extend class 'HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\InterfaceBad\Machine' by interface 'HHVM\UserDocumentation\Guides\Hack\Classes\TraitAndInterfaceRequirements\InterfaceBad\Fliers' in /home/example/user-documentation/guides/hack/06-classes/28-trait-and-interface-requirements-examples/interface-bad.php.type-errors on line 21
</code></pre>
</div>
diff -ur build-old/final/guides-html/hack/classes/type-constants-revisited.html build-final2/final/guides-html/hack/classes/type-constants-revisited.html
--- build-old/final/guides-html/hack/classes/type-constants-revisited.html 2020-11-13 12:41:51.465106982 -0800
+++ build-final2/final/guides-html/hack/classes/type-constants-revisited.html 2020-11-13 14:30:18.785246371 -0800
@@ -243,12 +243,12 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>object(Hack\UserDocumentation\Classes\TypeConstantsRevisited\Examples\Instance\IntBox)#1 (1) {
- [&quot;value&quot;:&quot;Hack\UserDocumentation\Classes\TypeConstantsRevisited\Examples\Instance\Box&quot;:private]=&gt;
+<pre><code>object(HHVM\UserDocumentation\Guides\Hack\Classes\TypeConstantsRevisited\Instance\IntBox) (1) {
+ [&quot;value&quot;:&quot;HHVM\UserDocumentation\Guides\Hack\Classes\TypeConstantsRevisited\Instance\Box&quot;:private]=&gt;
int(10)
}
-object(Hack\UserDocumentation\Classes\TypeConstantsRevisited\Examples\Instance\IntBox)#1 (1) {
- [&quot;value&quot;:&quot;Hack\UserDocumentation\Classes\TypeConstantsRevisited\Examples\Instance\Box&quot;:private]=&gt;
+object(HHVM\UserDocumentation\Guides\Hack\Classes\TypeConstantsRevisited\Instance\IntBox) (1) {
+ [&quot;value&quot;:&quot;HHVM\UserDocumentation\Guides\Hack\Classes\TypeConstantsRevisited\Instance\Box&quot;:private]=&gt;
int(123)
}
</code></pre>
diff -ur build-old/final/guides-html/hack/functions/type-enforcement.html build-final2/final/guides-html/hack/functions/type-enforcement.html
--- build-old/final/guides-html/hack/functions/type-enforcement.html 2020-11-13 12:41:51.465106982 -0800
+++ build-final2/final/guides-html/hack/functions/type-enforcement.html 2020-11-13 14:30:18.785246371 -0800
@@ -18,7 +18,9 @@
<h2 class="headingWithAnchor" id="partial-signatures">Partial Signatures<a href="#partial-signatures"><i class="glyphIcon fa fa-link"></i></a></h2>
<p>In partial mode, type hints are optional.</p>
<div class="highlight fbgfm source-language-Hack">
-<pre><code class="language-PHP">function add_items($x, int $y) {
+<pre><code class="language-PHP">&lt;?hh // partial
+
+function add_items($x, int $y) {
return $x + $y;
}
</code></pre>
diff -ur build-old/final/guides-html/hack/generics/some-basics.html build-final2/final/guides-html/hack/generics/some-basics.html
--- build-old/final/guides-html/hack/generics/some-basics.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/generics/some-basics.html 2020-11-13 14:30:18.785246371 -0800
@@ -36,11 +36,7 @@
<code>push</code>, and as the return type of the instance method <code>pop</code>. Note that although <code>push</code> and <code>pop</code> use the type parameter, they are not themselves
generic methods.</p>
<div class="highlight fbgfm source-language-Hack">
-<pre><code class="language-PHP">function useIntStack(
- \Hack\UserDocumentation\Generics\Introduction\Examples\Stack\Stack&lt;int&gt;
- $stInt,
-): void {
- require_once(&quot;Stack.inc.php&quot;);
+<pre><code class="language-PHP">function useIntStack(Stack&lt;int&gt; $stInt): void {
$stInt-&gt;push(10);
$stInt-&gt;push(20);
$stInt-&gt;push(30);
diff -ur build-old/final/guides-html/hack/getting-started/getting-started.html build-final2/final/guides-html/hack/getting-started/getting-started.html
--- build-old/final/guides-html/hack/getting-started/getting-started.html 2020-11-13 12:41:51.465106982 -0800
+++ build-final2/final/guides-html/hack/getting-started/getting-started.html 2020-11-13 14:30:18.781246063 -0800
@@ -31,7 +31,7 @@
checks all code recursively under this root together as one project.</p>
<h3 class="headingWithAnchor" id="your-first-hack-program__3.-write-your-first-hack-program">3. Write your first Hack program<a href="#your-first-hack-program__3.-write-your-first-hack-program"><i class="glyphIcon fa fa-link"></i></a></h3>
<p>Using the editor of your choice (e.g., VSCode or vim), let's create a file called <code>first.hack</code> with the following code:</p>
-<div class="highlight fbgfm source-language-hack">
+<div class="highlight fbgfm source-language-Hack">
<pre><code class="language-PHP">namespace Hack\GettingStarted\MyFirstProgram;
&lt;&lt;__EntryPoint&gt;&gt;
diff -ur build-old/final/guides-html/hack/silencing-errors/error-codes.html build-final2/final/guides-html/hack/silencing-errors/error-codes.html
--- build-old/final/guides-html/hack/silencing-errors/error-codes.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/silencing-errors/error-codes.html 2020-11-13 14:30:18.789246680 -0800
@@ -3,7 +3,9 @@
<a href="https://github.com/facebook/hhvm/blob/master/hphp/hack/test/errors/error_map.ml">error_map.ml</a>.</p>
<h2 class="headingWithAnchor" id="1002-top-level-code">1002: Top-level code<a href="#1002-top-level-code"><i class="glyphIcon fa fa-link"></i></a></h2>
<div class="highlight fbgfm source-language-Hack">
-<pre><code class="language-PHP">/* HH_FIXME[1002] Top-level code isn't checked. */
+<pre><code class="language-PHP">namespace HHVM\UserDocumentation\Guides\Hack\SilencingErrors\ErrorCodes\Toplevel;
+
+/* HH_FIXME[1002] Top-level code isn't checked. */
echo &quot;hello world\n&quot;;
</code></pre>
</div>
diff -ur build-old/final/guides-html/hack/source-code-fundamentals/program-structure.html build-final2/final/guides-html/hack/source-code-fundamentals/program-structure.html
--- build-old/final/guides-html/hack/source-code-fundamentals/program-structure.html 2020-11-13 12:41:51.465106982 -0800
+++ build-final2/final/guides-html/hack/source-code-fundamentals/program-structure.html 2020-11-13 14:30:18.781246063 -0800
@@ -44,7 +44,7 @@
<p>The following file is equivalent to the earlier example:</p>
<div class="highlight fbgfm source-language-Hack">
<pre><code class="language-PHP">#!/usr/bin/env hhvm
-&lt;?hh // strict
+&lt;?hh
namespace Hack\UserDocumentation\Fundamentals\ProgramStructure\Examples\LegacyHelloWorld;
&lt;&lt;__EntryPoint&gt;&gt;
diff -ur build-old/final/guides-html/hack/types/generic-types.html build-final2/final/guides-html/hack/types/generic-types.html
--- build-old/final/guides-html/hack/types/generic-types.html 2020-11-13 12:41:51.465106982 -0800
+++ build-final2/final/guides-html/hack/types/generic-types.html 2020-11-13 14:30:18.785246371 -0800
@@ -33,10 +33,7 @@
the parameter type of the instance method <code>push</code>, and as the return type of the instance method <code>pop</code>. Note that although <code>push</code> and <code>pop</code> use
the type parameter, they are not themselves generic methods.</p>
<div class="highlight fbgfm source-language-Hack">
-<pre><code class="language-PHP">function use_int_stack(
- \Hack\UserDocumentation\Types\Generics\Examples\Stk\Stack&lt;int&gt; $stInt,
-): void {
- require_once('Stack.inc.php');
+<pre><code class="language-PHP">function use_int_stack(Stack&lt;int&gt; $stInt): void {
$stInt-&gt;push(10);
$stInt-&gt;push(20);
$stInt-&gt;push(30);
diff -ur build-old/final/guides-html/hack/XHP/basic-usage.html build-final2/final/guides-html/hack/XHP/basic-usage.html
--- build-old/final/guides-html/hack/XHP/basic-usage.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/XHP/basic-usage.html 2020-11-13 14:30:18.785246371 -0800
@@ -23,7 +23,7 @@
&lt;&lt;__EntryPoint&gt;&gt;
function basic_usage_examples_basic_xhp(): void {
- var_dump(
+ \var_dump(
&lt;div&gt;
My Text
&lt;strong&gt;My Bold Text&lt;/strong&gt;
@@ -62,7 +62,7 @@
dict(0) {
}
[&quot;source&quot;]=&gt;
- string(93) &quot;/home/analbumcover/user-documentation/guides/hack/21-XHP/07-basic-usage-examples/basic.php:11&quot;
+ string(98) &quot;/home/example/user-documentation/guides/hack/21-XHP/07-basic-usage-examples/basic.php:14&quot;
}
object(Facebook\XHP\HTML\i) (6) {
[&quot;tagName&quot;:protected]=&gt;
@@ -80,14 +80,14 @@
dict(0) {
}
[&quot;source&quot;]=&gt;
- string(93) &quot;/home/analbumcover/user-documentation/guides/hack/21-XHP/07-basic-usage-examples/basic.php:12&quot;
+ string(98) &quot;/home/example/user-documentation/guides/hack/21-XHP/07-basic-usage-examples/basic.php:15&quot;
}
}
[&quot;context&quot;:&quot;Facebook\XHP\Core\node&quot;:private]=&gt;
dict(0) {
}
[&quot;source&quot;]=&gt;
- string(93) &quot;/home/analbumcover/user-documentation/guides/hack/21-XHP/07-basic-usage-examples/basic.php:13&quot;
+ string(98) &quot;/home/example/user-documentation/guides/hack/21-XHP/07-basic-usage-examples/basic.php:16&quot;
}
</code></pre>
</div>
diff -ur build-old/final/guides-html/hack/XHP/extending.html build-final2/final/guides-html/hack/XHP/extending.html
--- build-old/final/guides-html/hack/XHP/extending.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/XHP/extending.html 2020-11-13 14:30:18.789246680 -0800
@@ -115,7 +115,7 @@
try {
echo await $uinfo-&gt;toStringAsync();
} catch (XHP\AttributeRequiredException $ex) {
- var_dump($ex-&gt;getMessage());
+ \var_dump($ex-&gt;getMessage());
}
/* HH_FIXME[4314] This is a typechecker error but not a runtime error. */
@@ -128,9 +128,9 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>string(180) &quot;Required attribute `userid` was not specified in element `user_info`.
+<pre><code>string(249) &quot;Required attribute `userid` was not specified in element `HHVM\UserDocumentation\Guides\Hack\XHP\Extending\RequiredAttributes\user_info`.
-/home/analbumcover/user-documentation/guides/hack/21-XHP/16-extending-examples/required-attributes.php:9&quot;
+/home/example/user-documentation/guides/hack/21-XHP/16-extending-examples/required-attributes.php:12&quot;
User with id 1000 has name Joel
</code></pre>
</div>
@@ -308,7 +308,7 @@
try {
echo await $my_br-&gt;toStringAsync().&quot;\n&quot;;
} catch (XHP\InvalidChildrenException $ex) {
- var_dump($ex-&gt;getMessage());
+ \var_dump($ex-&gt;getMessage());
}
$my_ul = &lt;my_ul /&gt;;
$my_ul-&gt;appendChild(&lt;li /&gt;);
@@ -323,9 +323,9 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>string(268) &quot;Element `my_br` was rendered with invalid children.
+<pre><code>string(327) &quot;Element `HHVM\UserDocumentation\Guides\Hack\XHP\Extending\Children\my_br` was rendered with invalid children.
-/home/jjergus/work/code/user-documentation/guides/hack/21-XHP/16-extending-examples/children.php:9
+/home/example/user-documentation/guides/hack/21-XHP/16-extending-examples/children.php:12
Verified 0 children before failing.
@@ -405,9 +405,9 @@
final xhp class ui_get_status extends x\element {
protected async function renderAsync(): Awaitable&lt;x\node&gt; {
- $ch = curl_init('https://developers.facebook.com/status/');
- curl_setopt($ch, CURLOPT_USERAGENT, 'hhvm/user-documentation example');
- $status = await HH\Asio\curl_exec($ch);
+ $ch = \curl_init('https://developers.facebook.com/status/');
+ \curl_setopt($ch, \CURLOPT_USERAGENT, 'hhvm/user-documentation example');
+ $status = await \HH\Asio\curl_exec($ch);
return &lt;x:frag&gt;Status is: {$status}&lt;/x:frag&gt;;
}
}
@@ -419,8 +419,8 @@
$status = &lt;ui_get_status /&gt;;
$html = await $status-&gt;toStringAsync();
// This can be long, so just show a bit for illustrative purposes
- $sub_status = substr($html, 0, 100);
- var_dump($sub_status);
+ $sub_status = \substr($html, 0, 100);
+ \var_dump($sub_status);
}
</code></pre>
</div>
@@ -472,9 +472,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>ID: dc4d64d05f
-&lt;span id=&quot;dc4d64d05f&quot;&gt;This has an optional random id&lt;/span&gt;
-&lt;span&gt;This has an optional random id&lt;/span&gt;
+<pre><code>&lt;span id=&quot;9899fbc5f0&quot;&gt;This has a random id&lt;/span&gt;
</code></pre>
</div>
<h3 class="headingWithAnchor" id="html-helpers__class-attribute-management">Class Attribute Management<a href="#html-helpers__class-attribute-management"><i class="glyphIcon fa fa-link"></i></a></h3>
diff -ur build-old/final/guides-html/hack/XHP/interfaces.html build-final2/final/guides-html/hack/XHP/interfaces.html
--- build-old/final/guides-html/hack/XHP/interfaces.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/XHP/interfaces.html 2020-11-13 14:30:18.785246371 -0800
@@ -124,6 +124,7 @@
final class XHPUnsafeExample implements XHP\UnsafeRenderable {
public async function toHTMLStringAsync(): Awaitable&lt;string&gt; {
+ /* HH_FIXME[2050] $_GET is not recognized by the typechecker */
return '&lt;script&gt;'.$_GET['I_LOVE_XSS'].'&lt;/script&gt;';
}
}
@@ -142,21 +143,21 @@
'3' =&gt; 3,
'true' =&gt; true,
'null' =&gt; null,
- 'new stdClass()' =&gt; new stdClass(),
+ 'new stdClass()' =&gt; new \stdClass(),
'vec[&lt;li /&gt;, &lt;li /&gt;, &lt;li /&gt;]' =&gt; vec[&lt;li /&gt;, &lt;li /&gt;, &lt;li /&gt;],
'XHPUnsafeExample' =&gt; new XHPUnsafeExample(),
};
- $max_label_len = max($inputs-&gt;mapWithKey(($k, $_) ==&gt; strlen($k)));
+ $max_label_len = \max($inputs-&gt;mapWithKey(($k, $_) ==&gt; \strlen($k)));
print \HH\Lib\Str\repeat(' ', $max_label_len + 1).&quot; | XHPRoot | XHPChild\n&quot;;
print \HH\Lib\Str\repeat('-', $max_label_len + 1).&quot;-|---------|----------\n&quot;;
foreach ($inputs as $label =&gt; $input) {
- printf(
+ \printf(
&quot; %s | %-7s | %s\n&quot;,
\HH\Lib\Str\pad_left($label, $max_label_len, ' '),
$input is x\node ? 'yes' : 'no',
- $input is XHPChild ? 'yes' : 'no',
+ $input is \XHPChild ? 'yes' : 'no',
);
}
}
diff -ur build-old/final/guides-html/hack/XHP/introduction.html build-final2/final/guides-html/hack/XHP/introduction.html
--- build-old/final/guides-html/hack/XHP/introduction.html 2020-11-13 12:41:51.469107270 -0800
+++ build-final2/final/guides-html/hack/XHP/introduction.html 2020-11-13 14:30:18.785246371 -0800
@@ -32,19 +32,7 @@
which can then be used like plain HTML elements. For example, this site defines an <code>&lt;a_post&gt;</code> tag that has the same interface
as a standard <code>&lt;a&gt;</code> tag, but makes a POST request instead of a GET request:</p>
<div class="highlight fbgfm source-language-Hack">
-<pre><code class="language-PHP">/*
- * Copyright (c) 2004-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
-namespace HHVM\UserDocumentation;
-
-use namespace Facebook\XHP\Core as x;
+<pre><code class="language-PHP">use namespace Facebook\XHP\Core as x;
use type Facebook\XHP\HTML\{XHPHTMLHelpers, a, form};
@@ -108,7 +96,7 @@
<em>Output</em>
<div class="highlight fbgfm">
<pre><code>&lt;a href=&quot;http://www.example.com&quot;&gt;I'm a normal link&lt;/a&gt;
-&lt;form id=&quot;7b3be41f61&quot; method=&quot;post&quot; action=&quot;http://www.example.com&quot; class=&quot;postLink&quot;&gt;&lt;a onclick=&quot;document.getElementById(&amp;quot;7b3be41f61&amp;quot;).submit(); return false;&quot; href=&quot;#&quot;&gt;I make a POST REQUEST&lt;/a&gt;&lt;/form&gt;
+&lt;form id=&quot;208542b0ba&quot; method=&quot;post&quot; action=&quot;http://www.example.com&quot; class=&quot;postLink&quot;&gt;&lt;a onclick=&quot;document.getElementById(&amp;quot;208542b0ba&amp;quot;).submit(); return false;&quot; href=&quot;#&quot;&gt;I make a POST REQUEST&lt;/a&gt;&lt;/form&gt;
</code></pre>
</div>
<h2 class="headingWithAnchor" id="runtime-validation">Runtime Validation<a href="#runtime-validation"><i class="glyphIcon fa fa-link"></i></a></h2>
@@ -140,7 +128,7 @@
</div>
<em>Output</em>
<div class="highlight fbgfm">
-<pre><code>Fatal error: XHP: mismatched tag: `naps` not the same as `span` in /data/users/joelm/user-documentation/guides/hack/24-XHP/01-introduction-examples/tag-matching-validation.php.type-errors on line 15
+<pre><code>Fatal error: XHP: mismatched tag: `naps` not the same as `span` in /home/example/user-documentation/guides/hack/21-XHP/01-introduction-examples/tag-matching-validation.php.type-errors on line 17
</code></pre>
</div>
<p>The above code won't typecheck or run because the XHP validator will see that <code>&lt;span&gt;</code> and <code>&lt;naps&gt;</code> tags are mismatched; however,
@@ -161,7 +149,7 @@
echo await $xhp-&gt;toStringAsync();
} catch (XHP\InvalidChildrenException $ex) {
// We will get here because an &lt;i&gt; cannot be nested directly below a &lt;ul&gt;
- var_dump($ex-&gt;getMessage());
+ \var_dump($ex-&gt;getMessage());
}
}
</code></pre>
@@ -170,7 +158,7 @@
<pre><code class="language-PHP">&lt;&lt;__EntryPoint&gt;&gt;
async function intro_examples_allowed_tag_validation_run(): Awaitable&lt;void&gt; {
intro_examples_allowed_tag_validation_using_string();
- echo PHP_EOL.PHP_EOL;
+ echo \PHP_EOL.\PHP_EOL;
await intro_examples_allowed_tag_validation_using_xhp();
}
</code></pre>
@@ -179,9 +167,9 @@
<div class="highlight fbgfm">
<pre><code>&lt;ul&gt;&lt;i&gt;Item 1&lt;/i&gt;&lt;/ul&gt;
-string(320) &quot;Element `Facebook\XHP\HTML\ul` was rendered with invalid children.
+string(321) &quot;Element `Facebook\XHP\HTML\ul` was rendered with invalid children.
-/home/jjergus/work/code/user-documentation/guides/hack/21-XHP/04-some-basics-examples/allowed-tag-validation.inc.php:13
+/home/example/user-documentation/guides/hack/21-XHP/01-introduction-examples/allowed-tag-validation.inc.php:15
Verified 0 children before failing.
@@ -221,7 +209,7 @@
string $could_be_bad,
): Awaitable&lt;void&gt; {
intro_examples_avoid_xss_using_string($could_be_bad);
- echo PHP_EOL.PHP_EOL;
+ echo \PHP_EOL.\PHP_EOL;
await intro_examples_avoid_xss_using_xhp($could_be_bad);
}
diff -ur build-old/final/static_resources.json build-final2/final/static_resources.json
--- build-old/final/static_resources.json 2020-11-13 12:41:51.389101524 -0800
+++ build-final2/final/static_resources.json 2020-11-13 14:30:18.697239577 -0800
@@ -2,7 +2,7 @@
"/css/main.css": {
"localPath": "/home/jjergus/work/code/user-documentation/public/css/main.css",
"checksum": "69a03d683f27f798",
- "mtime": 1605300069,
+ "mtime": 1605306320,
"mimeType": "text/css"
},
"/favicon.png": {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment