QmlJS: Reactivate instantiating component scope detection.

* Bind::usesQmlPrototype is now significantly more performant
* type environments are no longer hashed by filename, but rather
  by Document *
* duplicate scope builds are avoided

Task-number: QTCREATORBUG-2835
Reviewed-by: Erik Verbruggen
This commit is contained in:
Christian Kamm
2010-11-23 12:57:48 +01:00
parent 8f27c43877
commit 93967104f3
6 changed files with 78 additions and 7 deletions

View File

@@ -1584,14 +1584,14 @@ const TypeEnvironment *Context::typeEnvironment(const QmlJS::Document *doc) cons
{
if (!doc)
return 0;
return _typeEnvironments.value(doc->fileName(), 0);
return _typeEnvironments.value(doc, 0);
}
void Context::setTypeEnvironment(const QmlJS::Document *doc, const TypeEnvironment *typeEnvironment)
{
if (!doc)
return;
_typeEnvironments[doc->fileName()] = typeEnvironment;
_typeEnvironments[doc] = typeEnvironment;
}
const Value *Context::lookup(const QString &name, const ObjectValue **foundInScope) const