- Qt 6.9
- Qt QML Compiler
- QQmlSA Namespace
- Qt 6.9.2 Reference Documentation

# QQmlSA Namespace

Provides tools for static analysis on QML programs. More...

Header: | `#include <QQmlSA>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS QmlCompiler)` `target_link_libraries(mytarget PRIVATE Qt6::QmlCompiler)`
Status: | Technical Preview

## Types

enum class | AccessSemantics { Reference, Value, None, Sequence }
enum class | BindingType { Invalid, BoolLiteral, NumberLiteral, StringLiteral, RegExpLiteral, …, GroupProperty }
enum class | MethodType { Signal, Slot, Method, StaticMethod }
enum class | ScopeType { JSFunctionScope, JSLexicalScope, QMLScope, GroupedPropertyScope, AttachedPropertyScope, EnumScope }
enum class | ScriptBindingKind { Invalid, PropertyBinding, SignalHandler, ChangeHandler }

## Detailed Description

## Type Documentation

### enum class QQmlSA::AccessSemantics

Describes how a type is accessed and shared.

Constant | Value | Description
--- | --- | ---
`QQmlSA::AccessSemantics::Reference` | `0` | The type behaves like an Object type
`QQmlSA::AccessSemantics::Value` | `1` | The type behaves like a Value type
`QQmlSA::AccessSemantics::None` | `2` | The type is a namespace, or is invalid
`QQmlSA::AccessSemantics::Sequence` | `3` | The type behaves like a Sequence type

See also The QML Type System.

### enum class QQmlSA::BindingType

Describes the type of a QQmlSA::Binding.

Constant | Value | Description
--- | --- | ---
`QQmlSA::BindingType::Invalid` | `0` | There is no binding
`QQmlSA::BindingType::BoolLiteral` | `1` | The binding is a bool literal
`QQmlSA::BindingType::NumberLiteral` | `2` | The binding is a number literal
`QQmlSA::BindingType::StringLiteral` | `3` | The binding is a string literal
`QQmlSA::BindingType::RegExpLiteral` | `4` | The binding is a regular expression literal
`QQmlSA::BindingType::Null` | `5` | The binding is a null literal
`QQmlSA::BindingType::Translation` | `6` | The binding is a translation
`QQmlSA::BindingType::TranslationById` | `7` | The binding is a translation by id
`QQmlSA::BindingType::Script` | `8` | The binding is a regular script
`QQmlSA::BindingType::Object` | `9` | The binging is an Object
`QQmlSA::BindingType::Interceptor` | `10` | The binding is an interceptor that can intercept writes to properties such as Behavior
`QQmlSA::BindingType::ValueSource` | `11` | The binging is a property value source
`QQmlSA::BindingType::AttachedProperty` | `12` | The binding is an attached object
`QQmlSA::BindingType::GroupProperty` | `13` | The binding is a grouped property

### enum class QQmlSA::MethodType

Describes the type of a QQmlSA::Method.

Constant | Value | Description
--- | --- | ---
`QQmlSA::MethodType::Signal` | `0` | The method is a signal
`QQmlSA::MethodType::Slot` | `1` | The method is a slot
`QQmlSA::MethodType::Method` | `2` | The method is a Q_INVOKABLE method
`QQmlSA::MethodType::StaticMethod` | `3` | The method is a Q_INVOKABLE static method

### enum class QQmlSA::ScopeType

Describes the type of QML scope.

Constant | Value | Description
--- | --- | ---
`QQmlSA::ScopeType::JSFunctionScope` | `0` | The scope is a JavaScript function:
     Item {
         function f() : int { <- begin
             return 1
         } <- end
     }
`QQmlSA::ScopeType::JSLexicalScope` | `1` | The scope is a JavaScript lexical scope:
     property int i: { <- begin
         let a = 1
         { <- begin
             console.log("hello")
         } <- end
         return a
     } <- end
`QQmlSA::ScopeType::QMLScope` | `2` | The scope is a QML Object:
     Item { <- begin
         x: 50
     } <- end
`QQmlSA::ScopeType::GroupedPropertyScope` | `3` | The scope is a grouped property:
     Text {
         font { <- begin
             pixelSize: 12
             bold: true
         } <- end
     }
`QQmlSA::ScopeType::AttachedPropertyScope` | `4` | The scope is an attached property:
     Item {
         Component.onCompleted: console.log("Hello")
         ^^^^^^^^^
                  \ Scope of attached property Component
     }
`QQmlSA::ScopeType::EnumScope` | `5` | The scope is a QML enum:
     enum E { <- begin
         A,
         B,
         C
     } <- end

Each entry is shown with an example scope of the matching type in QML code.

### enum class QQmlSA::ScriptBindingKind

Describes the script type of a QQmlSA::Binding of type Script.

Constant | Value | Description
--- | --- | ---
`QQmlSA::ScriptBindingKind::Invalid` | `0` | The binding has an invalid script
`QQmlSA::ScriptBindingKind::PropertyBinding` | `1` | The binding is bound to a property
`QQmlSA::ScriptBindingKind::SignalHandler` | `2` | The binding is a signal handler
`QQmlSA::ScriptBindingKind::ChangeHandler` | `3` | The binding is a change handler