rokucommunity / rokucommunity/brighterscript
Flag max number of local variables
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 208
- Forks
- 68
- Avg merge
- 8h 39m
- Merged PRs (30d)
- 39
Description
There seems to be a limit of 253 variables allowed in a function (including parameters). We should flag this.

Here's a piece of test code showing the issue
function testIf()
var1 = 1
var2 = 2
var3 = 3
var4 = 4
var5 = 5
var6 = 6
var7 = 7
var8 = 8
var9 = 9
var10 = 10
var11 = 11
var12 = 12
var13 = 13
var14 = 14
var15 = 15
var16 = 16
var17 = 17
var18 = 18
var19 = 19
var20 = 20
var21 = 21
var22 = 22
var23 = 23
var24 = 24
var25 = 25
var26 = 26
var27 = 27
var28 = 28
var29 = 29
var30 = 30
var31 = 31
var32 = 32
var33 = 33
var34 = 34
var35 = 35
var36 = 36
var37 = 37
var38 = 38
var39 = 39
var40 = 40
var41 = 41
var42 = 42
var43 = 43
var44 = 44
var45 = 45
var46 = 46
var47 = 47
var48 = 48
var49 = 49
var50 = 50
var51 = 51
var52 = 52
var53 = 53
var54 = 54
var55 = 55
var56 = 56
var57 = 57
var58 = 58
var59 = 59
var60 = 60
var61 = 61
var62 = 62
var63 = 63
var64 = 64
var65 = 65
var66 = 66
var67 = 67
var68 = 68
var69 = 69
var70 = 70
var71 = 71
var72 = 72
var73 = 73
var74 = 74
var75 = 75
var76 = 76
var77 = 77
var78 = 78
var79 = 79
var80 = 80
var81 = 81
var82 = 82
var83 = 83
var84 = 84
var85 = 85
var86 = 86
var87 = 87
var88 = 88
var89 = 89
var90 = 90
var91 = 91
var92 = 92
var93 = 93
var94 = 94
var95 = 95
var96 = 96
var97 = 97
var98 = 98
var99 = 99
var100 = 100
var101 = 101
var102 = 102
var103 = 103
var104 = 104
var105 = 105
var106 = 106
var107 = 107
var108 = 108
var109 = 109
var110 = 110
var111 = 111
var112 = 112
var113 = 113
var114 = 114
var115 = 115
var116 = 116
var117 = 117
var118 = 118
var119 = 119
var120 = 120
var121 = 121
var122 = 122
var123 = 123
var124 = 124
var125 = 125
var126 = 126
var127 = 127
var128 = 128
var129 = 129
var130 = 130
var131 = 131
var132 = 132
var133 = 133
var134 = 134
var135 = 135
var136 = 136
var137 = 137
var138 = 138
var139 = 139
var140 = 140
var141 = 141
var142 = 142
var143 = 143
var144 = 144
var145 = 145
var146 = 146
var147 = 147
var148 = 148
var149 = 149
var150 = 150
var151 = 151
var152 = 152
var153 = 153
var154 = 154
var155 = 155
var156 = 156
var157 = 157
var158 = 158
var159 = 159
var160 = 160
var161 = 161
var162 = 162
var163 = 163
var164 = 164
var165 = 165
var166 = 166
var167 = 167
var168 = 168
var169 = 169
var170 = 170
var171 = 171
var172 = 172
var173 = 173
var174 = 174
var175 = 175
var176 = 176
var177 = 177
var178 = 178
var179 = 179
var180 = 180
var181 = 181
var182 = 182
var183 = 183
var184 = 184
var185 = 185
var186 = 186
var187 = 187
var188 = 188
var189 = 189
var190 = 190
var191 = 191
var192 = 192
var193 = 193
var194 = 194
var195 = 195
var196 = 196
var197 = 197
var198 = 198
var199 = 199
var200 = 200
var201 = 201
var202 = 202
var203 = 203
var204 = 204
var205 = 205
var206 = 206
var207 = 207
var208 = 208
var209 = 209
var210 = 210
var211 = 211
var212 = 212
var213 = 213
var214 = 214
var215 = 215
var216 = 216
var217 = 217
var218 = 218
var219 = 219
var220 = 220
var221 = 221
var222 = 222
var223 = 223
var224 = 224
var225 = 225
var226 = 226
var227 = 227
var228 = 228
var229 = 229
var230 = 230
var231 = 231
var232 = 232
var233 = 233
var234 = 234
var235 = 235
var236 = 236
var237 = 237
var238 = 238
var239 = 239
var240 = 240
var241 = 241
var242 = 242
var243 = 243
var244 = 244
var245 = 245
var246 = 246
var247 = 247
var248 = 248
var249 = 249
var250 = 250
var251 = 251
var252 = 252
var253 = 253
var254 = 254
end function
Variable names are hoisted into the symbol table at compile-time, so even variables defined in will-never-be-executed if blocks will count against this limit.

Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the BrightScript function shown in the report, then trace the compiler's symbol-table handling and diagnostic path. Done means functions exceeding 253 variables, including parameters and variables in unreachable branches, produce a clear compiler diagnostic instead of compiling silently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100