xml.@*::[attrName] cannot be expressed in ABC

RESOLVED WONTFIX

Status

RESOLVED WONTFIX
7 years ago
9 days ago

People

(Reporter: jodyer, Unassigned)

Tracking

unspecified
Future
x86
Mac OS X
Bug Flags:
flashplayer-qrb +

Details

(Reporter)

Description

7 years ago
var xml = <x foo="hello"/>;
print(xml.@*::foo);   // prints hello

and so should

print(xml.@*::["foo"]);

But instead we get a verify error. Turns out there is no way to say that runtime computed wildcard qualified attribute name in ABC.

Comment 1

7 years ago
That would be because MultinameLA does not allow the ns_set entry to be 0 so as to represent '*'.  But if what you write is true, then the name *::[x] is also not representable (since every multiname type has an "A" variant, so the attribute aspect is incidental).  Indeed this compiles but does not run:

  var v = 10;
  var vvv = "v";
  print(*::[vvv]);
(Reporter)

Comment 2

7 years ago
My point, which is not a big one until we get down to actually solving the problem, is that the multiname forms do not currently take a zero index to represent the wildcard namespace. There is no reason why they couldn’t except that it is slightly out of sync with the (implied) view that only qualified names are qualified with *. Right or wrong, that is the model we had in the beginning. Go back six years or so and I might argue that it is the multinames that should represent the * qualified names. On the otherhand, such names are closely tied with XML QNames, which are not multinames, and so there might have to be a translation to QNames at runtime. But now I ramble.

What's missing, to my eye, is a name kind in the vicinity of 17 and 18 that allows run time computed names that are qualified with *.

Updated

7 years ago
Blocks: 479769
Flags: flashplayer-qrb+
Target Milestone: --- → Future
Tamarin is a dead project now. Mass WONTFIX.
Status: NEW → RESOLVED
Last Resolved: 9 days ago
Resolution: --- → WONTFIX
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
You need to log in before you can comment on or make changes to this bug.