Cascade: A Universal Programmer-assisted Type Qualifier Inference Tool
Mohsen Vakilian*
1
Amarin Phaosawasdi* Michael D. Ernst† Ralph E. Johnson*
*University of Illinois at Urbana-Champaign
†University of Washington
Cascade: A Universal Programmer-assisted Type Qualifier Inference - - PowerPoint PPT Presentation
Cascade: A Universal Programmer-assisted Type Qualifier Inference Tool Mohsen Vakilian* Amarin Phaosawasdi* Michael D. Ernst Ralph E. Johnson* *University of Illinois at Urbana-Champaign 1 University of Washington Type qualifiers
1
†University of Washington
2
◼ Locking ◼ Aliasing ◼ Interning ◼ Immutability ◼ Tainting
3
◼ Locking ◼ Aliasing ◼ Interning ◼ Immutability ◼ Tainting
4
◼ Locking ◼ Aliasing ◼ Interning ◼ Immutability ◼ Tainting
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
incompatible types in argument. root = root.loadTree(q, xqic); ^ found : @Nullable MathVector required: @NonNull MathVector
24
incompatible types in argument. root = root.loadTree(q, xqic); ^ found : @Nullable MathVector required: @NonNull MathVector Change parameter xpic
@Nullable MathVector
25
incompatible types in argument. root = root.loadTree(q, xqic); ^ found : @Nullable MathVector required: @NonNull MathVector Change parameter xpic
@Nullable MathVector
call to value(int) not allowed
ic.value(k); ^ found : @ReadOnly MathVector required: @Mutable MathVector
26
incompatible types in argument. root = root.loadTree(q, xqic); ^ found : @Nullable MathVector required: @NonNull MathVector Change parameter xpic
@Nullable MathVector
call to value(int) not allowed
ic.value(k); ^ found : @ReadOnly MathVector required: @Mutable MathVector Change receiver parameter
@ReadOnly MathVector
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
◼ More automation is not always better ◼ Some tasks need problem-solving and creativity ◼ Applicable to other fields
52