mojo icon indicating copy to clipboard operation
mojo copied to clipboard

[Feature Request] `ListLiteral` should be subscriptable and implement `__iter__`

Open xcloudplatform opened this issue 1 year ago • 1 comments

Review Mojo's priorities

What is your request?

its really not good entry level experience if list literal is not subscribtable or iterable

What is your motivation for this change?

error: Expression [10]:45:27: 'ListLiteral[[!kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>]]' is not subscriptable, it does not implement the `__getitem__`/`__setitem__` methods





error: Expression [12]:44:25: 'ListLiteral[[!kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>, !kgen.declref<_"$StringLiteral"::_StringLiteral>]]' does not implement the '__iter__' method

Any other details?

x

xcloudplatform avatar Jun 04 '23 10:06 xcloudplatform

We have to evolve our list representation a bit. [1, 2, 3] should be subscriptable but something like [1, "foo"] will be a bit trickier to handle.

Mogball avatar Jun 05 '23 22:06 Mogball

I have this issue with DynamicVector[String] as well

regarding __iter__

octopushugger avatar Dec 06 '23 15:12 octopushugger

Indeed, as of Mojo version 0.7.0:

  • __iter__ is still not implemented for DynamicVector[String]
  • __iter__ and __getitem__, __setitem__, __refitem__ are not implemented for ListLiteral

Related issues: #88, #89, now closed in favor of #100.

ltjkoomen avatar Jan 25 '24 21:01 ltjkoomen