curiousdannii-testing / inform7-imported-bugs

0 stars 0 forks source link

[I7-1941] [Mantis 1977] I6 or internal error on proposition referring to many locals #143

Closed curiousdannii-testing closed 2 years ago

curiousdannii-testing commented 2 years ago

Reported by : dfremont

Description :

A test compiled into a "Prop_n" routine that refers to many local variables of the phrase using it is either miscompiled, leading to an I6 error, or causes an internal error. In the example below, the test is compiled into a routine called "Prop_52701444", when its name should be "Prop_34" (giving the I6 error 'No such constant as "Prop_34"'). With a larger number of locals, the internal error below results.

Steps to reproduce :

Foo is a room.
To zog:
    let A0 be the player;
    let A1 be the player;
    let A2 be the player;
    let A3 be the player;
    let A4 be the player;
    let A5 be the player;
    let A6 be the player;
    let A7 be the player;
    let A8 be the player;
    [let A9 be the player;]
    if every room encloses a thing that is A0 that is A1 that is A2 that is A3 that is A4 that is A5 that is A6 that is A7 that is A8[ that is A9], do nothing.

Additional information :

The internal error resulting from uncommenting the two comments above:

Problem. An internal error has occurred: Unknown proposition deferral reason. The error was detected at line 36 of "inform7/Chapter 18/Compile Deferred Propositions.w". This should never happen, and I am now halting in abject failure.

imported from: [Mantis 1977] I6 or internal error on proposition referring to many locals
  • status: Closed
  • resolution: Resolved
  • resolved: 2022-04-12T08:44:03+10:00
  • imported: 2022/01/10
curiousdannii-testing commented 2 years ago

61eedb62875fc10070240916:

Fixed via this commit:
https://github.com/ganelson/inform/commit/fd2a34fe4ced9afe92982e6b107e0a93ba6b1cc9