1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
pragma Strict
import QtQml
QtObject {
property ShadowedObjectName shadowed1: ShadowedObjectName {}
property ShadowedObjectName shadowed2: ShadowedObjectName {}
property QtObject shadowed3: ShadowedObjectNameDerived {}
function returnShadowed2() : QtObject { return shadowed2 }
function a(mark: int) {
// as-cast can be optimized out if we're clever.
(shadowed1 as QtObject).objectName = mark;
}
function b(mark: int) {
// method return values can contain shadowed properties!
returnShadowed2().objectName = mark;
}
function c(mark: int) {
// Has to do an actual as-cast, but results in ShadowedObjectNameDerived!
(shadowed3 as ShadowedObjectName).objectName = mark;
}
Component.onCompleted: {
a(43);
b(42);
c(41);
}
}
|