This becomes more and more non-intuitive.

   let a: font = f  // copy f because a is value-typed?

That syntax doesn't exist in QML. You can only type-annotate function arguments and return types, but not locals.

  let b = a        // copy because a is typed, and b's type is inferred from a?

That statement by itself is a no-op in JS. It just adds another name to the value referred to by a. Here you have one of the reasons why I'm hesitant to add further syntax like you propose above. I would also have to add extra byte code instructions, invent semantics for them, and figure out how that would interact with the ECMAScript standard.

   let c = f        // ref because f is JS-ish type

Here we just load f into a local and form a value type reference. That's the only thing you can do when loading a value type from a property.

   function foo(arg) {
     return arg
   }
  let d = foo(b) // ref because f is JS-ish type ? or copy because a is typed, and b's type is inferred from a?

Here we're indeed not in Kansas anymore.

   let b = d // ref?

Well, it's wicked. Let's never allow typed locals!
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to