-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtodo.txt
107 lines (84 loc) · 3.15 KB
/
todo.txt
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
ping!
update completion for function types to complete like
b.call |->| {} rather than b.call(f)
Competion of method params (afte parenthesis
Completion with parameters broken ?
Check assignment types match
Check method params match
Import proposals(himts) / fixer (CTRL SHFT O)
blog about & have ant check for use of javax/swing/GroupLayout and error if it does
To fix:
- (select panel/design and in inspector right click root node/properties and chnage to not use java 1.6)
- (global: tools/options/gui builder)
============= TODO semantic checks =====================
for all check protection: private, internal etc...
Type(class)
-> check if all abstract overidden and marked override execpt if type is abstract
-> final cant be subclassed
-> const ????
Type(mixin)
# Mixins cannot declare concrete instance fields
# Mixins cannot declare constructors
# Mixins cannot declare once methods
# const ????
Type(Enum)
# Enums must have private constructors -> check if they are
Fields
-> Check name is unique
-> check value matches type
-> const fields (hard to check) can only be set in constructors and it blocks
-> readonly marked fields
-> in mixin only const/static or abstract fields
Variables:
-> check name unique
-> check was set with := before using =
-> check value matches type if present
static block
-> no 'this'
constructor
-> check constructor chain ('this' or 'super'), check that chained constructor exists
-> same as method (no this)
method
-> 'this' available
-> parameters
-> if static : no super
-> no 'this' in static
-> not using non static slots froma static one
-> check for virtual/abstract/override
-> Fantom supports covariance - which allows an overridden method to narrow the return type of the inherited method:
-> A method declared to return This is a special case of covariance which always returns the type being used
once method
-> meh
* Must not be declared within a const class
* Must not be declared within a mixin
* Must not be a constructor
* Must not be static
* Must not be abstract
* Must return non-Void
* Must have no parameters
Closure / it blocks
-> it / this
-> check for variable conflict where either it or this is required
========== Currently Being worked on============================================
- Add sub-menu to build.fan for running actions: doc,clean and others defined in BuildPod.fan (clean, native...)
- Also have a "custom" option with text entry dialog to run user actions
- Cleanup hard-coded strings (actions/menus etc...)
- Change fan_home checks so that it hints to the problem if not executable(fan.exe on windows)
- Check on this [[http://wiki.netbeans.org/PluginPortalQualityCriteria]] and submit to NB plugin portal.
========= Long term Goals ======================================================
- Semantic analysis
-step 2: uses/misuses (4) - partialy done
-step 3: with inheritance ? (5) - prob. need indexer
- Occurence finder (2)
- Rename / Refactor
-Local: 2
-Remote: 4
- Go to definition
-Local:2
-Remote:3
- Fix imports
- Fan (3)
- Java (5)
- Fix proposals
- Impl missing methods (abstracts/virtual etc..)
- Create method/class/mixin ...