currently we mainly try to warn about primitive == null/undefined or
primitive === non primitive.
There are other that we could warn about null==null null==undefined,
but I feel that they might be triggered too much by clean code.
Change-Id: Id43d838d60a4e13f361be34e4bb38211777a081e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* fix ASTVariableReference::value: correctly get reference value type
by using either initialiser of bindingTarget (broken since a codemodel
update in 2018)
* disable warning for casting in bool to null comparison (it does not
cast, is always false)
* fix property checks (where skipped without default of readonly)
* remove non relevant checks (ErrInvalidPropertyType for lowercase now that custom
value types are supported, and for properties called data)
* updated import version
Change-Id: I38407acf327d0f773b38dda4c02fb4d95a420851
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* add inline components to bind.
* inserts inline components in the component that contains them (makes
Context:lookupType simpler)
* unify Context:lookupType overloads without adding extra heap allocations
using a template (avoid code duplication)
* add tests for inline components
* warn about nested components
* use model manager to load dependencies in tst_check (old test did
not load dependencies and simply skipped all checks on imports)
Fixes: QTCREATORBUG-24766
Fixes: QTCREATORBUG-24705
Change-Id: Ibcade7752cdaa08e960f66db3a724ab7fb3268cf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
This is mainly just making sure that token that are "empty" are really
empty (to avoid writing them out in the reformatter), but still
contain the correct location (for error messages using for example
firstSourceLocation()).
Introduce a SourceLocation::zeroLength() method to make this change
simpler to do.
QtCreator does not run qlalr automatically, so it is "polluted" by the
updated generated files.
Fixes: QTCREATORBUG-25198
Change-Id: I0ab19fb380ee3d9a7d9e05d104fe313468f52703
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Fixed the dependencies test.
Now it makes sure that all dependencies are loaded before evaluating
the checks, otherwise a race condition in the link process (QTCREATORBUG-25240) might give problems.
This requires running the event loop to ensure that the invokeMethod
in PluginDumper::loadPluginTypes creates the futures in the model
manager.
Change-Id: I4c0dd5cc948917e2a74fd46c3b66ee3bb5370da4
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
update imports of tst_dependencies to newer version (for Qt 5.15)
Change-Id: I095200a2fe54a059cd2d69c76b6da08ab8e596a5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Mainly update import lists for Qt5.15 and ensure load is complete
before comparing.
Change-Id: I954cc4806d49d1a466f5e558b836ce49eb3693b0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
QQC2's scroll view does not allow clicking through the scroll bars even
if they are invisible. That's a shame, but we're not going to fix it in
QtCreator. Rather, choose locations to click on that are outside of the
scroll bars.
Also, wait for the window to be exposed before manipulating it.
Change-Id: I7d8de1a6be7dec88c5d0ac1707341b543e385a9e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Apparently this one never worked, but as we don't use it in our own
code, that went unnoticed.
Fixes: QTCREATORBUG-25236
Change-Id: Ia013baf3ca2fd01cc14b72d9c6a5f73426539d00
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Exact output depends on too many factors, just make sure the
base type is there.
Make LLDB+GCC on Linux pass.
Change-Id: I520a8367ab00ee95f87b5d4fb935f3ae21efd820
Reviewed-by: David Schulz <david.schulz@qt.io>
LLDB does not report anything in that case nowadays. Which is actually fine.
Makes StaticMembersInLib and UndefinedStaticMembers pass.
Change-Id: I302ab702e5eacf89fcd08ea1935dbf43e5e56fa8
Reviewed-by: David Schulz <david.schulz@qt.io>
This fixes the Internal2, EnumFlags and EnumInClass tests on Linux.
The values lose now the previously hand-crafted Class:: prefixes,
but the context is clear from the type column, and it's what LLDB
developers (and potentially users) consider normal.
Change-Id: I09e41f7b4fb4f078ef3f535fe650d06e7c2a0331
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Was off by one, swallowing the first character of the message.
Change-Id: I736cadda2cb6d9e3703d276b631e574c498af874
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Use a ValuePattern(.*) instead to specify an uninteresting/unchecked
value.
This allows using of TypePattern in the same check, allowing to fix
a part of CharArray test for LLDB.
Change-Id: I3b8b209318d663290c02ce466e2a198d3a66832f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Just the 64 bit case, simple types.
Task-number: QTCREATORBUG-24098
Change-Id: If13e342c1fb419a026cdaa35b21483566e8494b7
Reviewed-by: David Schulz <david.schulz@qt.io>
Use QList<QString> instead of QStringList for the test, the
actual dumper is unaffected.
Task-number: QTCREATORBUG-24098
Change-Id: Ibbdd9255add9744acc06144f8f8d5b34e42186c9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Dependency on Utils is not exported by ExtensionSystem, therefore not
transitive.
Amends 41b73594ad
Change-Id: Iaa95ae16854cf760fdd32bc542297746b6351527
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Just brush over the differences between the versions, the actual
contents is ok.
Change-Id: I4fe8e1a0e87ab6c4157a048f215b8abb13887cd4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
We should never actually write default values into the settings, because
- if the default value changes in a later Qt Creator version, the new
default should automatically take effect if the user didn't change the
value
- it senselessly grows the settings file
Add a QtcSettings class that extends QSettings by a
"setValueWithDefault" method, which does not write default values to the
settings, and actually removes the settingskey if the user switches back
to the default.
Use it at the places where we already do this manually.
Task-number: QTCREATORBUG-24762
Change-Id: Ia76414cb21e8521f3aeed1e37b43ae4fb3393ea3
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Amends e6873b5b24. As on it fix handling for key, value
handling for Qt6.
Change-Id: Ie13b02f92fd56d9372150763a2d56df511185baf
Reviewed-by: David Schulz <david.schulz@qt.io>
Syntactically, they do have an initializer, but they are not
initializations.
Change-Id: I0556b279ce2d173868585cbce085b803c1cff285
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This makes the use of '@' prefixes in split('{@QString}'...) etc
mandatory, thereby removing the guessing on whether namespaces apply
or not on the dumper 'core' side, and removes the guessing on
whether dropping the '@' 'works' on the individual dumper implementation
side.
Amends 1074c2ffce.
Change-Id: I44611eb09557638dec12d2e2f78cdaeac0bbd449
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Courtesy of readability-static-accessed-through-instance
Amends: b2a766a79a
Round #2: This time done with Qt Creator's Analyzer, which
found other occurences than run-clang-tidy.py
Change-Id: I479e280c7abcf2d24baccbb0af69ae4bda05198e
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
readability-make-member-function-const finds lots of member functions
that could be made const. This change just picks getter functions that
really should be const.
readability-convert-member-functions-to-static finds non-static member
functions which do not access this. This change turns most of them
into static ones, but leaves some non static to keep the class API
consistent.
readability-static-accessed-through-instance fixes the places where
the originally non-static, now static functions were called through
instance.
Change-Id: I8cf16c01f7988a7c9d073b5f8ede6a9706b94fb0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
QVector is a typedef to QList in Qt6 so cdb reports vector types as
QList<T>
Change-Id: Ic1940bc9e3286906c42d29a9c29882b5b3699312
Reviewed-by: hjk <hjk@qt.io>