Attached property reuse

This warning category is spelled [attached-property-reuse] by qmllint.

Using attached type already initialized in a parent scope

What happened?

You initialized a propagating attached type multiple times.

Note: This mostly happens for attached types that inherit from QQuickAttachedPropertyPropagator.

Why is this bad?

Propagating attached objects consume memory for each instantiation but only need to be initialized once.

Example

 import QtQuick
 import QtQuick.Templates as T
 import QtQuick.Controls.Material // contains the Material attached type

 T.ToolBar {
     id: control

     // first instantiation of Material's attached property
     property color c: Material.toolBarColor

     background: Rectangle {
          // second instantiation of Material's attached property, wrong!
         color: Material.toolBarColor
     }
 }

To fix this warning, query the attached type from the parent:

 import QtQuick
 import QtQuick.Templates as T
 import QtQuick.Controls.Material // contains the Material attached type

 T.ToolBar {
     id: control

     // first instantiation of Material's attached property
     property color c: Material.toolBarColor

     background: Rectangle {
         // use control's attached property, correct!
         color: control.Material.toolBarColor
     }
 }