@@ -35,36 +35,33 @@ module Vue {
3535 result = any ( GlobalVueEntryPoint e ) .getANode ( )
3636 }
3737
38- /** Models data flow through Vue Composition API helpers. */
38+ /**
39+ * Models data flow through Vue Composition API helpers.
40+ *
41+ * Note that `computed` is not modeled here but in the `vue.model.yml` data
42+ * extension, because its object overload (`computed({ get() { ... } })`)
43+ * requires callback flow synthesis that data extensions support but a
44+ * hand-written `SummarizedCallable` does not.
45+ */
3946 overlay [ local?]
4047 private class VueCompositionApiSummary extends DataFlow:: SummarizedCallable:: Range {
4148 string name ;
4249
4350 VueCompositionApiSummary ( ) {
44- name = [ "ref" , "shallowRef" , "toRef" , "reactive" , "computed" ] and
51+ name = [ "ref" , "shallowRef" , "toRef" , "reactive" ] and
4552 this = "vue." + name
4653 }
4754
4855 override predicate propagatesFlow ( string input , string output , boolean preservesValue ) {
49- name = [ "ref" , "shallowRef" ] and
56+ name = [ "ref" , "shallowRef" , "toRef" ] and
5057 input = "Argument[0]" and
5158 output = "ReturnValue.Member[value]" and
5259 preservesValue = true
5360 or
54- name = "toRef" and
55- input = "Argument[0]" and
56- output = "ReturnValue.Member[value]" and
57- preservesValue = false
58- or
5961 name = "reactive" and
6062 input = "Argument[0]" and
6163 output = "ReturnValue" and
6264 preservesValue = false
63- or
64- name = "computed" and
65- input = "Argument[0].ReturnValue" and
66- output = "ReturnValue.Member[value]" and
67- preservesValue = true
6865 }
6966
7067 override DataFlow:: InvokeNode getACall ( ) {
0 commit comments