qtdeclarative/tests/auto/qml/qmlcppcodegen/data
Ulf Hermann ecf78f3190 QmlCompiler: Properly handle uncertain component status
In order to determine whether an ID is visible from a referrer we need
not only determine the component boundaries of the referrer, but also
those of the candidate elements with the respective ID. Rewrite the
logic to have QQmlJSScopesById handle this. It has to iterate the
respective elements anyway and can therefore easily check if one of them
is assigned to an unknown property. It now provides low-level methods
that output all possible candidates for an ID, while also stating the
confidence associated with them. The plain id() and scope() methods only
return results we are actually certain about.

In places where we generate warnings or can allow for some fuzzy
results, we use the low-level methods, since those generally produce
more informative results.

The QML DOM was passing the JavaScript global object as referrer to the
scope() method before. This happened to work but was, of course, wrong.
Make sure that ID elements in the DOM receive a proper QML scope to
avoid that.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-140041
Change-Id: I41cf8603ae6a5d5461d3c12d74521e68b5e28ea4
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
2025-09-18 23:24:23 +02:00
..
Confused tst_qmlcppcodegen: Avoid cmake warning 2025-03-04 17:15:14 +01:00
Cycle QQmlJSImportsVisitor: Break inheritance cycles 2021-12-12 12:05:28 +01:00
ProgressBar Correct license for test files 2024-02-27 10:32:21 +01:00
WithSubDir QtQml: Clean up qmldir redirection 2025-02-26 20:54:39 +01:00
ambiguous1 QmlCompiler: Improve ambiguous type detection 2022-04-01 20:58:49 +02:00
ambiguous2 QmlCompiler: Improve ambiguous type detection 2022-04-01 20:58:49 +02:00
extra Generate qmldir files for extra directories with QML files 2024-04-03 20:37:18 +02:00
extra2 Generate qmldir files for extra directories with QML files 2024-04-03 20:37:18 +02:00
hidden QML: Turn singleton/type mismatch into a run time type error 2023-01-27 10:42:06 +01:00
imports QmlCompiler: Improve ambiguous type detection 2022-04-01 20:58:49 +02:00
shared Correct license for test files 2024-02-27 10:32:21 +01:00
AccessModelMethodsFromOutside.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
Action.qml Compiler: Don't crash on optional lookups on QJSValue base type 2024-01-29 17:02:28 +01:00
AnonymousComposite.qml QmlCompiler: Fix handling of anonymous composite types 2024-10-02 08:46:46 +00:00
ArraySequenceLengthInterop.qml QQmlJSCodeGenerator: fix nullptr dereference 2022-12-12 15:33:18 +01:00
B.qml QmlCompiler: Allow creation of actual QVariantMaps from object literals 2023-08-25 20:36:46 +02:00
BadType.qml QmlCompiler: Add test case for descriptive name of invalid type 2022-04-28 22:50:25 +00:00
BaseConstraint.qml QmlCompiler: Add generic QVariant-to-typed comparison 2023-12-07 13:29:41 +01:00
BaseMember.qml
BindingExpression.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
BindingToScriptStringProperty.qml Compiler: Skip bindings to properties of type QQmlScriptString 2025-04-17 12:10:22 +02:00
CMakeLists.txt QmlCompiler: Properly handle uncertain component status 2025-09-18 23:24:23 +02:00
Categorizer.qml QmlCompiler: Discern between different kinds of side effects 2025-06-23 15:44:42 +02:00
CppMethodListReturnType.qml Compiler: Handle method list return types from qmltypes file 2024-02-14 11:44:39 +01:00
CxxTypeFromDir.qml QML: Unify postprocessing of imports 2022-12-07 16:48:35 +01:00
CxxTypeFromImplicit.qml QML: Unify postprocessing of imports 2022-12-07 16:48:35 +01:00
Cycle1.qml QQmlJSImportsVisitor: Break inheritance cycles 2021-12-12 12:05:28 +01:00
Cycle2.qml QQmlJSImportsVisitor: Break inheritance cycles 2021-12-12 12:05:28 +01:00
Cycle3.qml QQmlJSImportsVisitor: Break inheritance cycles 2021-12-12 12:05:28 +01:00
DeduplicateConversionOrigins.qml Compiler: Deduplicate conversion origins based on register's content 2025-05-01 19:19:22 +02:00
Dummy.qml QmlCompiler: Do not cache composite metatypes in static members 2024-09-30 20:26:35 +02:00
Dummy2.qml QmlCompiler: Stabilize test 2023-08-22 20:11:34 +02:00
EditConstraint.qml QmlCompiler: Use original scope type for SetLookup 2024-02-21 14:27:53 +01:00
Enums.qml
FinalProperty.qml QML: Add final property attribute 2025-03-06 19:23:04 +01:00
Foozle.qml QmlCompiler: Don't try to get attached objects for non-QObject* 2021-12-17 12:43:14 +01:00
GetOptionalLookupNonVoidableBase.qml Compiler: Use regular lookup for redundant optional lookups 2025-04-10 13:35:00 +02:00
GetOptionalLookupOnQJSValueNonStrict.qml Compiler: Don't crash on optional lookups on QJSValue base type 2024-01-29 17:02:28 +01:00
GetOptionalLookupShadowed.qml Compiler: Also check for shadowing on optional lookups 2024-02-08 10:17:33 +01:00
Loopy.qml QQmlJSAotContext: flushPendingBinding() before capturing a property 2021-12-10 10:06:28 +01:00
MyObject.qml QmlCompiler: Properly handle uncertain component status 2025-09-18 23:24:23 +02:00
NotificationItem.qml QmlCompiler: Handle scripts as type lookups on GetLookup 2024-04-05 20:38:07 +02:00
NotificationsUtils.js QmlCompiler: Handle scripts as type lookups on GetLookup 2024-04-05 20:38:07 +02:00
OkType.qml QmlCompiler: Add test case for descriptive name of invalid type 2022-04-28 22:50:25 +00:00
Panel.qml Correct license for test files 2024-02-27 10:32:21 +01:00
Planner.qml QmlCompiler: Add generic QVariant-to-typed comparison 2023-12-07 13:29:41 +01:00
RootWithoutId.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
Satisfaction.qml QmlCompiler: Add generic QVariant-to-typed comparison 2023-12-07 13:29:41 +01:00
SelectionRectangle.qml
ShadowedObjectName.qml QmlCompiler: Extend shadow-checking 2023-11-04 01:29:09 +01:00
ShadowedObjectNameDerived.qml QmlCompiler: Extend shadow-checking 2023-11-04 01:29:09 +01:00
StoreMetaEnum.qml QmlCompiler: Do not generate lookups for bare meta enums 2023-11-18 08:36:01 +01:00
Test.qml QmlCompiler: Check builtin type aliases after list resolution 2022-06-15 09:43:01 +02:00
TestCase.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
ValueTypeArgument.qml Compiler: Properly read value type arguments when enforcing signatures 2024-07-17 12:14:46 +02:00
Variable.qml QmlCompiler: Add generic QVariant-to-typed comparison 2023-12-07 13:29:41 +01:00
WindowDerived.qml QmlCompiler: Fix a number of warts regarding type lookup 2022-03-23 12:29:26 +01:00
aliasLookup.qml
aliasToAliasResolutionSkipCorruption.qml QtQml: Correctly track alias resolutions skips 2025-07-02 14:44:04 +02:00
ambiguous.h Correct license for test files 2024-02-27 10:32:21 +01:00
ambiguousAs.qml QmlCompiler: Do not generate invalid code on generate_As 2023-03-17 20:57:14 +01:00
ambiguousSignals.qml QmlCompiler: Ignore cloned signals when analyzing signal handlers 2022-12-07 13:50:01 +01:00
anchorsFill.qml
anonymousCompositeUser.qml QmlCompiler: Fix handling of anonymous composite types 2024-10-02 08:46:46 +00:00
argumentConversion.qml QmlCompiler: Don't push type conversions back into the engine 2022-07-05 19:50:24 +02:00
array.qml
arrayCtor.qml QmlCompiler: Allow construction of Array objects 2023-08-22 17:16:53 +02:00
asCast.qml QtQml: Support url and date in 'instanceof' and 'as' 2025-02-28 20:11:32 +01:00
attachedBaseEnum.qml
badSequence.qml QML: Allow more conversions between different lists 2023-01-26 11:42:33 +01:00
basicBlocksWithBackJump.qml Compiler: Separate function prolog block and add validation of blocks 2023-08-04 09:34:09 +02:00
basicBlocksWithBackJump_infinite.qml Compiler: Separate function prolog block and add validation of blocks 2023-08-04 09:34:09 +02:00
basicDTZ.qml QmlCompiler: Add further tests for DTZ 2023-06-23 18:49:37 +00:00
bindToValueType.qml
birthdayparty.cpp Correct license for test files 2024-02-27 10:32:21 +01:00
birthdayparty.h qmltyperegistrar: Check properties, methods, enums for missing types 2024-04-25 18:55:23 +02:00
blockComments.qml QmlCompiler: Do not generate block comments into C++ code 2022-02-18 12:13:47 +01:00
boolCoercions.qml QmlCompiler: Allow coercing anything to bool 2023-03-10 23:42:49 +01:00
boolPointerMerge.qml QmlCompiler: Merge bool and any pointer type into the pointer type 2023-04-15 20:14:42 +02:00
boundComponents.qml qmlcompiler: Evaluate pragma ComponentBehavior 2022-05-24 15:44:16 +02:00
brokenAs.qml QmlCompiler: Don't crash on broken type assertions 2024-09-25 10:42:01 +02:00
callContextPropertyLookupResult.qml
callFactory.qml QmlCompiler: Ensure QObjects returned to AOT-compiled code are wrapped 2025-09-02 09:15:10 +02:00
callObjectLookupOnNull.qml QtQml: Check 'this' for null in callObjectPropertyLookup 2025-01-06 17:27:59 +01:00
callWithSpread.qml QmlCompiler: Don't crash on CallWithSpread 2022-11-22 12:32:23 +01:00
childobject.qml QQmlPropertyCache: Correctly set flags when loading methods 2024-02-29 12:08:08 +01:00
collector.h QtQml: Mark values on the AOT-compiled stack during gc 2025-09-02 09:15:02 +02:00
collector.qml QtQml: Mark values on the AOT-compiled stack during gc 2025-09-02 09:15:02 +02:00
colorAsVariant.qml
colorString.qml
compareOriginals.qml QmlCompiler: Retrieve original types for comparison 2023-11-13 10:13:18 +01:00
comparisonTypes.qml QmlCompiler: Always record original types for equality comparison 2023-11-09 19:12:37 +01:00
componentReturnType.qml
compositeTypeMethod.qml
compositesingleton.qml
consoleObject.qml compiler: Avoid invalid C++ code generation 2025-06-26 20:36:14 +02:00
consoleTrace.qml QmlCompiler: In debug mode, set instruction pointer before each lookup 2024-02-08 14:37:02 +00:00
construct.qml
contextParam.qml
conversionDecrement.qml QmlCompiler: Add missing parentheses to in-place arithmetic operations 2022-06-28 01:52:43 +02:00
conversionInDeadCode.qml QmlCompiler: Generate jump code also when skipping an instruction 2023-10-31 12:54:10 +02:00
conversions.qml
conversions2.qml Replace signal name manipulations with QQmlSignalNames 2023-08-15 12:13:31 +00:00
convertPrimitiveToVar.qml QmlCompiler: Allow primitive conversion if output is stored in var 2024-01-11 00:42:17 +01:00
convertQJSPrimitiveValueToIntegral.h Correct license for test files 2024-02-27 10:32:21 +01:00
convertQJSPrimitiveValueToIntegral.qml Compiler: Handle all integer signs and sizes when converting primitives 2024-01-09 10:40:49 +01:00
convertToOriginalReadAcumulatorForUnaryOperators.qml codegenerator: Convert to the original type of registers for unary ops 2023-10-06 18:06:47 +02:00
cppbaseclass.h Correct license for test files 2024-02-27 10:32:21 +01:00
cppobj.h QmlCompiler: Ensure QObjects returned to AOT-compiled code are wrapped 2025-09-02 09:15:10 +02:00
curlygrouped.qml
cycleHead.qml QQmlJSImportsVisitor: Break inheritance cycles 2021-12-12 12:05:28 +01:00
dateConstruction.qml QmlCompiler: Allow construction of Date objects 2023-08-18 14:26:04 +02:00
dateConversions.qml QmlCompiler: Allow coercing date values to numbers 2023-08-25 20:36:37 +02:00
deadShoeSize.qml
deadStoreLoop.qml QmlCompiler: Avoid infinite loop in dead store elimination 2022-02-18 16:48:50 +01:00
destroyAndToString.qml QtQml: Fix AOT compiled context for destroy() and toString() methods 2025-02-26 20:54:39 +01:00
detachOnAssignment.qml QtQml: Unify detaching behavior for all reference objects 2024-10-24 18:27:03 +00:00
detachedreferences.h QtQml: Store detached Sequence objects on the JS heap 2025-09-02 09:14:58 +02:00
detachedreferences.qml QtQml: Store detached Sequence objects on the JS heap 2025-09-02 09:14:58 +02:00
dialog.qml
dialogButtonBox.qml Controls: Use PlatformDialogHelper for enums in DialogButtonBox 2023-02-15 14:04:44 +01:00
disappearingArrowFunction.qml QmlCompiler: Guard against disappearing arrow functions 2025-09-15 14:55:42 +02:00
druggeljug.h QmlCompiler: Handle various date and time conversions correctly 2023-01-17 21:58:32 +01:00
dummy_imports.qml tst_qmlcppcodegen: Add QML dependency for Android 2023-01-25 17:08:36 +00:00
dummyobjekt.h Correct license for test files 2024-02-27 10:32:21 +01:00
dynamicmeta.h QObject: implement the ### Qt7 for dynamicMetaObject() 2024-11-14 13:49:01 -08:00
dynamicscene.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
enforceSignature.qml QtQml: Properly enforce signatures of AOT-compiled functions 2024-04-26 12:18:15 +00:00
enumConversion.qml QML: Use actual type for aliases of enum values 2023-12-05 12:50:59 +01:00
enumFromBadSingleton.qml QtQml: Always throw when requesting an enum from an invalid singleton 2023-03-01 11:56:19 +01:00
enumInvalid.qml
enumLookup.qml QmlCompiler: Support construction of value types with 'new' 2024-11-06 10:00:07 +01:00
enumMarkedAsFlag.qml qml compiler: Detect if user confuses flags and enums 2023-06-29 09:28:52 +02:00
enumProblems.qml QmlCompiler: Use actual type of enums, rather than int 2023-04-26 10:57:27 +02:00
enumProperty.h QmlCompiler: Use int for flag-type enums 2023-06-23 21:22:34 +02:00
enumScope.qml
enumproblems.h qmltyperegistrar: Manually register names for Q_ENUMS 2025-07-07 19:35:20 +02:00
enumsInOtherObject.qml
enumsUser.qml
equalityQObjects.qml qmlcachegen: Improve QObject comparison code generation test 2023-01-31 19:12:21 +01:00
equalityQUrl.qml qmlsc: Support equality operations for QUrl 2023-02-16 11:17:28 +01:00
equalityTestsWithNullOrUndefined.qml QmlCompiler: Add missing conversion for equality with null or undefined 2023-06-12 13:32:15 +02:00
equalityVarAndNonStorable.qml qmlcachegen: fix nonstrict equality code generation 2023-01-31 19:12:30 +01:00
equalityVarWithOutConversion.qml Compiler: Add missing conversion for variant equality comparisons 2025-02-18 20:02:02 +01:00
equalsUndefined.qml
exceptionFromInner.qml QML: Encode "missing" line number as negated address of stack frame 2023-05-09 21:28:06 +02:00
excessiveParameters.qml
extendedTypes.qml
failures.qml QmlCompiler: Support construction of value types with 'new' 2024-11-06 10:00:07 +01:00
fallbacklookups.qml QML: Handle dynamic meta objects in AOT lookups 2022-03-03 18:44:38 +01:00
fallbackresettable.qml QmlCompiler: Handle non-resettable undefined assignment 2024-01-25 18:35:05 +01:00
fileDialog.qml Correct license for test files 2024-02-27 10:32:21 +01:00
finalUser.qml QML: Add final property attribute 2025-03-06 19:23:04 +01:00
flagEnum.qml QmlCompiler: Use int for flag-type enums 2023-06-23 21:22:34 +02:00
fromBoolValue.qml QmlCompiler: Analyze type conversions before reads in basic blocks 2022-04-06 17:12:50 +02:00
funcWithParams.qml
functionCallInitCrash.qml Compiler: Detect calls on partially deleted objects and throw 2025-08-18 09:06:23 +02:00
functionLookup.qml QmlCompiler: Do not crash on attempts to lookup a function in the scope 2022-02-18 12:13:47 +01:00
functionReturningVoid.qml QmlCompiler: Fix return type calculation 2021-12-06 19:35:50 +01:00
functionTakingVar.qml QML: Take care of QVariant when converting function arguments 2022-02-23 12:09:42 +01:00
gadgetwithenum.h Correct license for test files 2024-02-27 10:32:21 +01:00
getOptionalLookup.h tst_qmlcppcodegen: Compile test with QT_NO_CAST_FROM_ASCII 2024-10-09 16:23:14 +02:00
getOptionalLookup.qml QmlCompiler: Fix conditions around as casts 2024-02-21 14:27:54 +01:00
globals.qml
idAccess.qml QmlCompiler: Do not use QQmlEngine from current QML context 2024-03-21 10:41:29 +01:00
idVsMember.qml QmlCompiler: Properly handle uncertain component status 2025-09-18 23:24:23 +02:00
ignoredFunctionReturn.qml Compiler: Guard against null dereference when ignoring function return 2024-01-09 10:40:49 +01:00
immediateQuit.qml
importsFromImportPath.qml
indirectlyShadowable.qml QmlCompiler: Reject lookups on shadowable base types 2024-02-01 09:33:09 +01:00
infinities.qml QmlCompiler: Correctly encode inf/nan/-0 into C++ 2022-02-18 12:13:47 +01:00
infinitiesToInt.qml QmlCompiler: Test that infinities cleanly cast to int 2022-12-23 09:02:24 +01:00
insertContextOnInvalidType.qml QmlCompiler: Do not miscompile ID lookups in invalid types 2024-09-25 21:24:12 +02:00
intEnumCompare.qml
intOverflow.qml
intToEnum.qml QmlCompiler: Do not crash when converting number literals to enums 2023-05-04 11:48:09 +02:00
interactive.qml Correct license for test files 2024-02-27 10:32:21 +01:00
interceptor.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
internalConversion.qml QmlCompiler: Allow internal conversions from wrapped original types 2023-11-04 01:29:26 +01:00
invalidateCompositeType.qml QmlCompiler: Do not cache composite metatypes in static members 2024-09-30 20:26:35 +02:00
invisible.h Correct license for test files 2024-02-27 10:32:21 +01:00
invisibleBase.qml QmlCompiler: Handle ID lookups of incomplete types correctly 2022-01-22 09:59:09 +01:00
invisibleListElementType.qml QmlCompiler: Don't crash when trying to resolve null list types 2022-06-02 10:07:40 +02:00
invisibleTypes.qml QmlCompile: Double-check types before generating lookups 2022-04-25 08:44:43 +02:00
isnan.qml QmlCompiler: Correctly label arguments and return types of JS functions 2022-02-25 14:08:22 +01:00
iterateUnknownValue.qml QmlCompiler: Do not re-resolve iterator value types 2025-03-31 08:29:52 +00:00
iteration.qml QmlCompiler: Implement GetIterator and IteratorNext 2023-09-21 10:11:05 +02:00
javaScriptArgument.qml QmlCompiler: Really fix writing into argument values 2022-07-05 19:50:19 +02:00
jsArrayMethods.qml QmlCompiler: Inline some array methods 2023-04-28 21:24:17 +02:00
jsArrayMethodsUntyped.qml QmlCompiler: Fix side effect detection for array methods 2024-07-02 21:16:21 +02:00
jsArrayMethodsWithParams.qml QmlCompiler: Inline some array methods 2023-04-28 21:24:17 +02:00
jsArrayMethodsWithParamsUntyped.qml QmlCompiler: Inline some array methods 2023-04-28 21:24:17 +02:00
jsMathObject.qml QmlCompiler: Implement Math.pow() 2022-07-21 13:19:04 +02:00
jsimport.qml
jsmoduleimport.qml
jsonArrayToStringList.qml QML: Allow conversion between different list types 2024-07-03 16:36:49 +02:00
largeValueType.h Compiler: Properly read value type arguments when enforcing signatures 2024-07-17 12:14:46 +02:00
layouts.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
letAndConst.qml QmlCompiler: Ignore InitializeDeadTemporalZone instruction 2022-11-11 12:07:42 +01:00
library.js
listAsArgument.qml QmlCompiler: Allow lists as arguments to methods 2022-11-10 15:00:11 +01:00
listConversion.qml QmlCompiler: Extend the listConversion test 2025-02-19 12:40:20 +01:00
listIndices.qml QmlCompiler: Detect non-integral values when accessing QQmlListProperty 2022-05-19 22:30:23 +02:00
listOfInvisible.qml QmlCompiler: Force QObject* for LoadElement on list properties 2023-07-26 16:54:52 +00:00
listPropertyAsModel.qml QQmlListAccessor: Accept QQmlListProperty 2022-07-26 21:17:28 +02:00
listToString.qml QmlCompiler: Allow coercion of lists to strings 2024-04-11 13:47:46 +00:00
listlength.qml
listprovider.h QML: Allow conversion between different list types 2024-07-03 16:36:49 +02:00
listsingleton.h QmlCompiler: Do not re-resolve iterator value types 2025-03-31 08:29:52 +00:00
math.qml QML: Allow as-casting to value types 2023-03-03 12:02:00 +01:00
mathMinMax.qml QmlCompiler: Implement multi-argument Math.{min,max}() 2023-02-23 09:51:22 +01:00
mathOperations.qml QmlCompiler: Implement remaining operators 2022-08-29 13:21:06 +02:00
mathStaticProperties.qml qmlsc: Support Math static properties 2024-04-18 22:30:24 +02:00
mergeSideEffects.qml QmlCompiler: Preserve external side effects across jumps 2025-06-27 21:56:31 +02:00
mergedObjectRead.qml Fix content pointer check for QObject* 2023-04-19 09:30:58 +02:00
mergedObjectWrite.qml Fix content pointer check for QObject* 2023-04-19 09:30:58 +02:00
methodOnListLookup.qml QmlCompiler: Allow calling methods on potentially undefined QObjects 2023-07-28 16:42:45 +02:00
methods.qml Replace signal name manipulations with QQmlSignalNames 2023-08-15 12:13:31 +00:00
modulePrefix.qml
moveRegVoid.qml QmlCompiler: On MoveReg, check if we need to move at all 2022-03-01 08:51:52 +01:00
multiRedirect.qml QtQml: Clean up qmldir redirection 2025-02-26 20:54:39 +01:00
multiforeign.h Correct license for test files 2024-02-27 10:32:21 +01:00
multiforeign.qml QmlCompiler: Store imported types in a QList 2022-11-25 00:04:02 +01:00
multipleCtors.qml QtQml: Allow initialization of value types with object types 2024-09-24 13:58:33 +02:00
namespaceWithEnum.qml qmltyperegistrar: Generate accessSemantics="none" for foreign namespaces 2022-11-29 12:32:27 +01:00
noBindingLoop.qml QQmlJSAotContext: flushPendingBinding() before capturing a property 2021-12-10 10:06:28 +01:00
noBuiltinsImport.qml QmlCompiler: Only import hardcoded builtins by default 2025-02-18 22:43:53 +00:00
noQQmlData.qml
nonNotifyable.qml
noscope.qml
notEqualsInt.qml QmlCompiler: Place code for CmpNeInt in parentheses 2022-02-04 15:55:00 +01:00
notNotString.qml QmlCompiler: Allow any conversion possible via QJSPrimitiveValue 2022-08-03 08:32:50 +02:00
nullAccess.qml
nullAccessInsideSignalHandler.qml Throw an exception in loadScopeObjectPropertyLookup when qmlScopeObject is null 2023-10-24 18:44:55 +02:00
nullComparison.qml QmlCompiler: Clean up equality operators 2023-08-25 23:58:12 +02:00
nullishCoalescing.qml Compiler: Add tests for the nullish coalescing operator ?? 2024-02-16 20:31:30 +01:00
numbersInJsPrimitive.qml QmlCompiler: Support more integer types 2023-03-30 15:46:55 +02:00
objectInVar.qml QmlCompiler: Perform QVariant conversion in JavaScript semantics 2022-02-18 12:13:47 +01:00
objectLookupOnListElement.qml QML: Allow as-casting to value types 2023-03-03 12:02:00 +01:00
objectWithStringListMethod.qml QmlCompiler: Correctly handle lookups in results of method calls 2023-07-25 16:33:29 +02:00
objectwithmethod.h tst_qmlcppcodegen: Compile test with QT_NO_CAST_FROM_ASCII 2024-10-09 16:23:14 +02:00
oldEnum.qml qmltyperegistrar: Manually register names for Q_ENUMS 2025-07-07 19:35:20 +02:00
optionalComparison.qml QmlCompiler: Allow comparison of optional types 2023-11-09 19:12:37 +01:00
outOfBounds.qml QmlCompiler: Implement console logging methods 2022-11-23 10:27:55 +01:00
overriddenMember.qml
ownProperty.qml
page.qml Compute implicitSize based on implicitContentSize in Pane and subclasses 2024-12-18 20:37:27 +01:00
parentProp.qml
person.cpp Correct license for test files 2024-02-27 10:32:21 +01:00
person.h Correct license for test files 2024-02-27 10:32:21 +01:00
popContextAfterRet.qml QmlCompiler: Handle context push/pop in dead code 2022-01-18 12:51:38 +01:00
prefixedMetaType.qml QmlCompiler: Respect qualified property types 2022-04-06 05:02:34 +02:00
pressAndHoldButton.qml
propertyChanges.qml
qmlUsing.qml QmlCompiler: Implement calling of methods on value types 2024-11-22 17:39:29 +01:00
qmlusing.h QmlCompiler: Implement calling of methods on value types 2024-11-22 17:39:29 +01:00
qtbug113150.qml qmlsc: Support Math static properties 2024-04-18 22:30:24 +02:00
qtfont.qml QmlCompiler: Allow conversion of object literals to QJSValue 2024-11-01 12:52:03 +01:00
readEnumFromInstance.qml QmlCompiler: Disallow reading enums from instances 2023-10-23 14:23:38 +02:00
readonlyListProperty.qml QmlCompiler: Correctly mark side effects for list operations 2024-04-11 15:47:39 +02:00
reduceWithNullThis.qml QML: Don't crash when calling coerceAndCall() with null thisObject 2023-12-08 20:11:28 +01:00
registerPropagation.qml QmlCompiler: Initialize registers with undefined where necessary 2022-07-05 19:50:28 +02:00
registerelimination.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
renameAdjust.qml QmlCompiler: Do not adjust renames 2023-12-07 12:54:37 +01:00
resettable.h Correct license for test files 2024-02-27 10:32:21 +01:00
resettable.qml QmlCompiler: Handle non-resettable undefined assignment 2024-01-25 18:35:05 +01:00
returnAfterReject.qml QmlCompiler: Return early after reject() 2023-12-22 09:50:35 +01:00
revisions.qml QmlCompiler: Respect revisions 2022-01-21 01:23:58 +01:00
scopeIdLookup.qml QML: Let IDs in outer context override bound components' properties 2023-12-04 15:19:09 +01:00
scopeVsObject.qml
scopedEnum.qml Qml: Allow accessing unscoped enums values as <Component>.<Enum>.<Key> 2025-05-31 10:36:42 +02:00
script.js
script.mjs
scriptstringholder.h Compiler: Add missing conversion for variant equality comparisons 2025-02-18 20:02:02 +01:00
sequenceToIterable.h QtQml: Avoid double-wrapping when converting to QVariantList 2025-09-11 14:01:55 +02:00
sequenceToIterable.qml QmlCompiler: Re-allow conversion from QObject to QString 2023-05-09 21:28:07 +02:00
sequenceToIterable2.qml QtQml: Avoid double-wrapping when converting to QVariantList 2025-09-11 14:01:55 +02:00
sequencetypeexample.cpp QQmlJSCodeGenerator: fix nullptr dereference 2022-12-12 15:33:18 +01:00
sequencetypeexample.h QQmlJSCodeGenerator: fix nullptr dereference 2022-12-12 15:33:18 +01:00
setLookupConversion.qml QmlCompiler: Preferably wrap types in QJSPrimitiveValue for SetLookup 2023-12-08 20:11:27 +01:00
setLookupOriginalScope.qml QmlCompiler: Use original scope type for SetLookup 2024-02-21 14:27:53 +01:00
shadowedAsCasts.qml QmlCompiler: Extend shadow-checking 2023-11-04 01:29:09 +01:00
shadowedMethod.qml QmlCompiler: Relax shadowing check 2023-05-02 19:29:25 +02:00
shadowedPrimitiveCmpEqNull.qml Compiler: Convert from stored to original type when generating equality 2024-02-07 17:23:01 +01:00
shifts.qml
signal.qml
signalHandler.qml QmlCompiler: Handle trivial signal handler constructions 2022-07-07 19:33:39 +02:00
signalIndexMismatch.qml Remove signal index mismatch in aot-compiled code 2022-11-15 11:52:45 +01:00
signalsWithLists.qml Properly support lists as method arguments 2023-05-09 21:28:06 +02:00
signatureIgnored.qml Add option to enforce function signatures 2022-10-14 16:36:36 +02:00
specificParent.qml
state.h Correct license for test files 2024-02-27 10:32:21 +01:00
storeElementSideEffects.qml QmlCompiler: Mark StoreElement on JS values has having side effects 2022-12-15 14:03:55 +01:00
stringArg.qml QmlCompiler: Inline String.arg() into generated code 2022-06-24 22:17:17 +02:00
stringLength.qml
stringToByteArray.qml QmlCompiler: Support conversions between QString and QByteArray 2022-07-22 21:30:12 +02:00
structuredValueType.qml QmlCompiler: Use correct static_metacall on DefineObjectLiteral 2024-12-12 18:20:55 +01:00
takenumber.cpp QmlCompiler: Name types when initializing structured value types 2024-12-19 12:39:38 +01:00
takenumber.h QmlCompiler: Name types when initializing structured value types 2024-12-19 12:39:38 +01:00
takenumber.qml QmlCompiler: Round towards 0 when coercing to 64bit integers 2024-12-20 09:44:16 +01:00
testlogger.js Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
text.qml
theme.cpp Correct license for test files 2024-02-27 10:32:21 +01:00
theme.h Correct license for test files 2024-02-27 10:32:21 +01:00
themerbad.qml qmlcachegen: Don't generate bad code if we cannot resolve a return type 2021-12-10 02:42:47 +01:00
themergood.qml QmlCompiler: Split type name by last "::" rather than first 2021-12-10 02:42:47 +01:00
thisObject.qml QmlCompiler: Implement ConvertThisToObject and basic DTZ 2023-04-25 16:53:00 +02:00
throwObjectName.qml QmlCompiler: Properly annotate ThrowException instruction 2022-06-23 09:35:56 +02:00
timelinetheme.cpp Correct license for test files 2024-02-27 10:32:21 +01:00
timelinetheme.h Correct license for test files 2024-02-27 10:32:21 +01:00
toString.qml QmlCompiler: Reject conversions via QJSValue 2022-06-15 09:43:01 +02:00
topLevelComponent.qml QmlCompiler: Do not stop parsing on top-level Component elements 2023-05-03 14:38:52 +02:00
translation.qml QmlCompiler: Inline translation methods 2022-06-24 14:47:58 +02:00
trigraphs.qml QmlCompiler: Escape question marks in string literals 2024-02-21 14:27:53 +01:00
trivialSignalHandler.qml QmlCompiler: Handle trivial signal handler constructions 2022-07-07 19:33:39 +02:00
tst_qmlcppcodegen_verify.cpp Tests: include QTest, not QtTest 2025-04-15 19:27:07 +02:00
typePropagationLoop.qml QmlCompiler: Properly check contained type for enums 2022-10-12 20:43:34 +02:00
typePropertyClash.qml QmlCompiler: Don't retrieve metaobjects for value and sequence types 2022-06-10 14:41:49 +02:00
typedArray.qml QmlCompiler: Add support for LoadElement on strings 2022-05-24 15:44:16 +02:00
unclearComponentBoundaries.qml QmlCompiler: Tighten detection of assignment to unknown properties 2025-02-21 16:20:38 +01:00
undefinedResets.qml QmlCompiler: Allow storeNameSloppy to reset a property 2022-07-11 13:37:26 +02:00
undefinedToDouble.qml QmlCompiler: Fix coercion of undefined to float and double 2023-02-21 12:13:59 +01:00
unknownAttached.qml QmlCompiler: Don't try to get attached objects for non-QObject* 2021-12-17 12:43:14 +01:00
unknownParameter.qml
unknownUnderlyingType.qml QmlCompiler: Error out on unstorable types 2025-04-14 11:29:35 +02:00
unstoredUndefined.qml QmlCompiler: Don't generate invalid code for storing undefined 2022-06-29 13:26:07 +02:00
unusedAttached.qml
urlString.qml QmlCompiler: Don't generate invalid code for argument conversion 2023-11-23 18:58:37 +01:00
usingCxxTypesFromFileImports.qml QML: Unify postprocessing of imports 2022-12-07 16:48:35 +01:00
valueTypeCast.qml QmlCompiler: Fix conditions around as casts 2024-02-21 14:27:54 +01:00
valueTypeCopy.qml QML: Add an "Addressable" value to ValueTypeBehavior 2023-03-02 17:54:30 +01:00
valueTypeDefault.qml QmlCompiler: Disallow reading from values affected by side effects 2023-05-04 16:44:44 +02:00
valueTypeLists.qml QmlCompiler: Sharpen side effect detection 2025-06-23 15:44:38 +02:00
valueTypeProperty.qml
valueTypeReference.qml QML: Add an "Addressable" value to ValueTypeBehavior 2023-03-02 17:54:30 +01:00
variantMap.qml QmlCompiler: Fix code for object literal generation 2024-03-26 12:31:58 +01:00
variantMapLookup.h QmlCompiler: Fix access to optional QVariantMap 2025-09-01 14:11:57 +02:00
variantMapLookup.qml QmlCompiler: Fix access to optional QVariantMap 2025-09-01 14:11:57 +02:00
variantReturn.qml QML: Fix call frame conversion for QVariant return types 2023-05-04 11:48:09 +02:00
variantlist.qml Re-allow retrieval of list properties in QQmlJSCodeGenerator 2022-01-15 14:22:42 +01:00
variantreturn.h Correct license for test files 2024-02-27 10:32:21 +01:00
versionmismatch.qml QmlCompiler: Do not crash on version-mismatched property access 2022-10-06 20:37:53 +02:00
voidConversion.qml QmlCompiler: Fix conversion from/to void 2023-08-23 15:30:11 +02:00
voidfunction.qml
weathermoduleurl.h QmlCompiler: Use correct static_metacall on DefineObjectLiteral 2024-12-12 18:20:55 +01:00
withlength.h QtQml: Allow initialization of value types with object types 2024-09-24 13:58:33 +02:00
wrapwithvariant.h Correct license for test files 2024-02-27 10:32:21 +01:00
writableVariantMap.h QmlCompiler: Explicitly cast operations that result in QString 2024-05-25 08:11:24 +02:00
writeVariantMap.qml QmlCompiler: Explicitly cast operations that result in QString 2024-05-25 08:11:24 +02:00
writeback.qml QmlCompiler: Reject lookups on shadowable base types 2024-02-01 09:33:09 +01:00