From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on ip-172-31-91-241.ec2.internal X-Spam-Level: X-Spam-Status: No, score=0.0 required=3.0 tests=none autolearn=ham autolearn_force=no version=4.0.1 Path: nntp.eternal-september.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Lawrence =?iso-8859-13?q?D=FFOliveiro?= Newsgroups: comp.lang.ada Subject: Re: In precision typing we trust Date: Wed, 27 Aug 2025 00:10:20 -0000 (UTC) Organization: A noiseless patient Spider Message-ID: <108lidc$br9n$2@dont-email.me> References: <107uv9g$3019a$1@dont-email.me> <107v1ji$303of$1@dont-email.me> <336fbb5f-a279-ea8e-67fd-f62bb00d6a89@irrt.De> <107vfb9$34cpj$1@dont-email.me> <10855lq$gj8l$1@dont-email.me> <1088h1a$19635$1@dont-email.me> <1089p1i$1ig1d$1@dont-email.me> <108aq2p$1qo9o$1@dont-email.me> <108dh2l$2f5h3$1@dont-email.me> <108ej11$2mbr8$1@dont-email.me> <108g1fv$32gqg$3@dont-email.me> <108h6b7$3a75k$3@dont-email.me> <108ijfj$3lihe$4@dont-email.me> <108jqcg$3ti12$2@dont-email.me> <87cy8im3kc.fsf@nightsong.com> <108l2bt$81g3$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 27 Aug 2025 00:10:21 +0000 (UTC) Injection-Info: dont-email.me; posting-host="db536ba589993a61865b5d43f96eac37"; logging-data="388407"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+so0qRO+KkLrb0NXt+FV/k" User-Agent: Pan/0.163 (Kryvyi Rih) Cancel-Lock: sha1:wrESEAxzDyaF4wAx8zfBEe3sDUk= Xref: feeder.eternal-september.org comp.lang.ada:66934 List-Id: On Tue, 26 Aug 2025 21:36:29 +0200, Dmitry A. Kazakov wrote: > On 2025-08-26 18:48, Paul Rubin wrote: >> "Dmitry A. Kazakov" writes: >> >>> Yep, as you can pass everything to anything: >>> >>> def F(X): >>> X = X + 1 >>> F(F) >> >>> Very, very strong typing! >> >> ==> TypeError: unsupported operand type(s) for +: 'function' and 'int' >> >> The typechecking is done at runtime, just like it says on the tin. > > The error occurred inside the body of F. F itself was successfully > called, because it is untyped. Just as I said. No, it was successfully entered, not successfully left. Remember, “call” means both “transfer” to and “return from” (otherwise it becomes “goto”, not “call”). That was not a “successful call”.