TypeRepository: Bail out of comparing to types with no loaded factory.

Authored by kfunk on Sep 5 2017, 11:22 PM.

Description

TypeRepository: Bail out of comparing to types with no loaded factory.

Since 0714e5d5 "TypeRegister: Stronger assumptions in debug mode", this
could hit an assertion when a session cache has types from multiple
language plugins.


kdevplatform.language: Factory for this type not loaded: 62
ASSERT: "false" in file ../kdevplatform/language/duchain/types/typeregister.cpp, line 65
zsh: abort (core dumped)

(note that type ID 62 belongs to kdev-python, not kdev-clang)

[...]
#4 0x00007f7ba389bdae in KDevelop::TypeSystem::ensureFactoryLoaded(KDevelop::AbstractTypeData const&) const (this=0x7f7ba4a76640 <KDevelop::TypeSystem::self()::system>, data=...)

at ../kdevplatform/language/duchain/types/typeregister.cpp:65

#5 0x00007f7ba389ba1e in KDevelop::TypeSystem::create(KDevelop::AbstractTypeData*) const (this=0x7f7ba4a76640 <KDevelop::TypeSystem::self()::system>, data=0x7f7b30297ff4)

at ../kdevplatform/language/duchain/types/typeregister.cpp:27

#6 0x00007f7ba389db69 in KDevelop::AbstractTypeDataRequest::equals(KDevelop::AbstractTypeData const*) const (this=0x7f7b4a635060, item=0x7f7b30297ff4)

at ../kdevplatform/language/duchain/types/typerepository.cpp:80

[...]
#16 0x00007f7b579f5da1 in (anonymous namespace)::Visitor::setDeclType<(CXCursorKind)8>(KDevelop::Declaration*, KDevelop::AbstractType*) (this=0x7f7b4a635ce0, decl=0x7f7b2c67f9b0, type=0x7f7b2c6e6630) at ../languages/clang/duchain/builder.cpp:808
[...]

Details

Committed
flherneSep 5 2017, 11:43 PM
Parents
R32:b535b60781b4: astyle: Move libastyle to 3rdparty subdir
Branches
Unknown
Tags
Unknown