QmlJS: Speed up Link significantly, provide more info on imports.
Link now caches imports. That means importing the same library (say, Qt) from more than one file no longer creates an importing namespace for each one. Instead, a single one is created for the instance of Link. To make this work, the type environment in ScopeChain has been given its own type: Interpreter::TypeEnvironment. That has the added benefit of being able to carry meta-information about imports. You can use TypeEnvironment::importInfo(qmlComponentName) to get information about the import node that caused the import of the component.
Showing
- src/libs/qmljs/qmljsbind.cpp 30 additions, 16 deletionssrc/libs/qmljs/qmljsbind.cpp
- src/libs/qmljs/qmljsbind.h 7 additions, 19 deletionssrc/libs/qmljs/qmljsbind.h
- src/libs/qmljs/qmljscheck.cpp 14 additions, 9 deletionssrc/libs/qmljs/qmljscheck.cpp
- src/libs/qmljs/qmljscheck.h 14 additions, 2 deletionssrc/libs/qmljs/qmljscheck.h
- src/libs/qmljs/qmljsdocument.cpp 1 addition, 1 deletionsrc/libs/qmljs/qmljsdocument.cpp
- src/libs/qmljs/qmljsinterpreter.cpp 133 additions, 3 deletionssrc/libs/qmljs/qmljsinterpreter.cpp
- src/libs/qmljs/qmljsinterpreter.h 56 additions, 4 deletionssrc/libs/qmljs/qmljsinterpreter.h
- src/libs/qmljs/qmljslink.cpp 156 additions, 131 deletionssrc/libs/qmljs/qmljslink.cpp
- src/libs/qmljs/qmljslink.h 6 additions, 11 deletionssrc/libs/qmljs/qmljslink.h
- src/plugins/qmljseditor/qmljseditor.cpp 6 additions, 6 deletionssrc/plugins/qmljseditor/qmljseditor.cpp
- src/plugins/qmljseditor/qmljsmodelmanager.cpp 13 additions, 12 deletionssrc/plugins/qmljseditor/qmljsmodelmanager.cpp
Loading
Please register or sign in to comment