hhvm / user-documentation

Documentation for those that use HHVM and write Hack code.
http://docs.hhvm.com/
Other
129 stars 159 forks source link

Strange phrasing in bool conversion section #1334

Open williewillus opened 1 year ago

williewillus commented 1 year ago

In the section on boolean conversions: https://docs.hhvm.com/hack/types/type-conversion#conversion-to-bool

The first sentence says "No non-bool type can be converted implicitly to bool. All other conversions must be explicit.".

But then the proceeds proceeds to give a long list of implicit conversions.

lexidor commented 1 year ago

Hi, leaving a drive-by comment here.

I do agree that the sentence structure is strange. It reads: No non-x can be implicitly converted to x. which is equivalent to: No value can be implicitly converted to a value of type x.

The sentence All other conversions to type x must be explicit. could then be written as: Converting a value to a value of type x must be done explicitly.

The comment about needing an explicit conversion is correct though. function takes_bool(bool $b): void; can not be called with an int without an explicit conversion. takes_bool((bool) 0) or takes_bool(boolval(0)).

Implicit conversion from classname to string is an example where no explicit conversion is required.