let X = Y in (F(X.a.b.c))reportsX does not exist in the current scopein binding property value- while
F((let X = Y.a.b).c)works
- while
- Compiler complexity could be O(n2) which makes big single GacXML compilation slow.
- or not complexity problem but just AST pooling?
- Dump binary type metadata including only new types created in Workflow. Need
VlppReflectionsupporting.
- Compile-time generic type annotation.
- C++ Reflection macros for generic type annotation.
- Apply to collections, tasks, etc.
- Remove the current generic interface syntax invented for
IAsync, and change howawaitdetermines return type.
- Only applies to interfaces and its members.
- Add base class
IInvokableMemberInfoforIEventInfo,IPropertyInfoandIMethodInfo. - Move
GetCpptoIInvokableMemberInfo. - Add
GetGenericHinttoIInvokableMemberInfo.
- Add base class
- When calling a function:
- Perform overloading checking with non-generic version.
- Check argument types with generic version if exists.
- Report error if failed.
- Use the generic version of return type if succeeded.
- If a generic method is called using
F<>(...)annotation, then ignore the checking, use the non-generic version of return type. - Generic parameter is not allowed on members, all parameter must be deduced from arguments.
- When using an interface type:
- Use the non-generic version if generic parameter is not specified.
- Use the generic version of generic parameter is specified.
- C++ Reflection macros for generic type annotation.
- In
bind(...)expression, add an annotation to convertIAsync<T>toT, could beawaitexpression. - If multiple
IAsyncdon't depend on each other, they could be awaited parallelly. - When a bind expression need to be re-evaluate, if there are still unfinished
IAsync<T>, cancel and ignore all of them.
- Generated C++ code try not to create IValueList if apply
{1 2 3}onList<int>argument. - In generated C++ code, when a collection instance is required from an interface:
- Try to cast to the collection instance directly using the pointer inside the implementation of the interface.
- Create the collection instance and copy all the data if the above step failed.
- Support
<category>nameidentifier, make generated code re-parsable. - Recognize collection interfaces instead of collection entities.
- Reconsider how to implement collection creating code in Workflow.
- Only if
Vlppdecides to add collection interfaces.
- Virtual functions.
- Class implements interfaces.