По какой-то причине изменение строки на (B["SOME_CONST"]): {value:10}
работает, хотя скобки все равно должны быть там. Я не смог найти причину, почему это так. Это, безусловно, ошибка.
Сначала я подумал, что это проблема с синтаксическим анализатором, спотыкающимся о точку или что-то в этом роде, но после еще нескольких тестов, похоже, это не так:
package
{
public class A
{
public var someObject:Object = {
(C.b["SOME_CONST"]): { value: 10 }
};
}
}
package {
public class B
{
public static const SOME_CONST:String = "someStringConst";
}
}
package {
public class C
{
public static var b:Class = B;
}
}
Если бы это была проблема с синтаксическим анализатором, он разрешился бы до b["SOME_CONST"]
и, таким образом, исключение времени выполнения. Тем не менее, код работает, как и ожидалось, без проблем.
Так что это действительно интересно.