From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: strange length check error Date: Wed, 17 Jan 2018 13:41:58 +0000 Organization: A noiseless patient Spider Message-ID: References: <14a35359-150a-4aa6-b437-19c74381be4b@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="a024929726141132c88b6670cd864061"; logging-data="24195"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18oqvjZrOkoEX6qKcwwhwrFZy5GYPMRB2U=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (darwin) Cancel-Lock: sha1:Eq+SAHFdhc+VczI8HzlGLbBEpdE= sha1:8eKhXjg7wcgLajKNwOXDW0e+7/E= Xref: reader02.eternal-september.org comp.lang.ada:49955 Date: 2018-01-17T13:41:58+00:00 List-Id: AdaMagica writes: > Am Mittwoch, 17. Januar 2018 13:13:49 UTC+1 schrieb Mehdi Saada: >> I get it, it's ugly, inefficient, wrong, I KNOW, but it's not mine, >> and I can't affor rewriting *every* piece of code that come along >> the exercices. >> Well, I could replace the actual >> type BOUNDED_STRING is record >> LENGTH: NATURAL := 0; >> DATA: STRING (1 .. 80); <---- I guess *you* forgot this or else >> it's illegal >> end record; > > Then of course this will raise an exception: > return (LENGTH(LEFT) + 1, LEFT.DATA(1..LENGTH(LEFT)) & RIGHT); > since > LEFT.DATA(1..LENGTH(LEFT)) & RIGHT is shorter than 80. > > Who is the *teacher*? I'm guessing that this is a generic, with parameter MAX_LENGTH, so maybe type BOUNDED_STRING is record LENGTH: NATURAL := 0; DATA: STRING (1 .. MAX_LENGTH); end record; & then this should be OK return (LENGTH(LEFT) + 1, LEFT.DATA(1..LENGTH(LEFT)) & RIGHT & LEFT.DATA((LENGTH(LEFT) + 1)..MAX_LENGTH));