Skip to content

Commit e72c652

Browse files
committed
Fixed IteratorMember and added a test for iterating over lists
1 parent 5634b1c commit e72c652

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

CodeModel/src/main/java/org/openzen/zenscript/codemodel/member/IteratorMember.java

+7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.openzen.zencode.shared.CodePosition;
44
import org.openzen.zenscript.codemodel.*;
55
import org.openzen.zenscript.codemodel.identifiers.MethodID;
6+
import org.openzen.zenscript.codemodel.identifiers.instances.IteratorInstance;
67
import org.openzen.zenscript.codemodel.identifiers.instances.MethodInstance;
78
import org.openzen.zenscript.codemodel.statement.Statement;
89
import org.openzen.zenscript.codemodel.type.IteratorTypeID;
@@ -49,7 +50,13 @@ public String describe() {
4950

5051
@Override
5152
public void registerTo(TypeID targetType, MemberSet.Builder members, GenericMapper mapper) {
53+
TypeID[] instancedTypes = mapper.map(iteratorTypes);
54+
IteratorTypeID iteratorTypeID = new IteratorTypeID(instancedTypes);
55+
FunctionHeader header = new FunctionHeader(iteratorTypeID);
5256

57+
MethodInstance instance = new MethodInstance(this, header, targetType);
58+
IteratorInstance iterator = new IteratorInstance(targetType, instancedTypes, instance);
59+
members.iterator(iterator);
5360
}
5461

5562
@Override
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#dependency: stdlib
2+
#output: 1
3+
#output: thing
4+
5+
import stdlib.List;
6+
7+
var list = new List<string>();
8+
list.add('thing');
9+
10+
println(list.length);
11+
for item in list {
12+
println(item);
13+
}

0 commit comments

Comments
 (0)