Short: Failed assignments leave behind empty mapping entries Date: Wed, 30 May 2001 12:08:00 +0200 From: Daniel Fischer <dfischer@gmx.de> Type: Bug State: Acknowledged. Falls das schon bekannt ist, bitte ich um Entschuldigung: map = ([1:2]); map[0][5]=1; Fuehrt bei mir dazu, dass in map ein Key fuer den ersten Index angelegt wird (also Effekt wie ein map[0]=0), obwohl die Zuweisung map[0][5]=1 einen Fehler ausloest (Index out of bounds). (map[0])[5]=1 verhaelt sich uebrigens nicht so. --------------------------------- The problem is in how the expressions are parsed. In 'map[0][5] = 1', the 'map[0]' is parsed as possible lvalue, thus generating the opcodes 'push_indexed_lvalue', followed by 'index_lvalue'. On the other hand '(map[0])[5]' parses the 'map[0]' as normal rvalue, leading to the opcode sequence 'index' followed by 'index_lvalue'. Given the obscurity in the parser when it comes to generating lvalues, I don't know how to fix this yet.