| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library test.analysis.notification.highlights2; | 5 library test.analysis.notification.highlights2; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 10 import 'package:analysis_server/src/constants.dart'; | 10 import 'package:analysis_server/src/constants.dart'; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 } | 102 } |
| 103 } | 103 } |
| 104 | 104 |
| 105 @override | 105 @override |
| 106 void setUp() { | 106 void setUp() { |
| 107 super.setUp(); | 107 super.setUp(); |
| 108 server.options.useAnalysisHighlight2 = true; | 108 server.options.useAnalysisHighlight2 = true; |
| 109 createProject(); | 109 createProject(); |
| 110 } | 110 } |
| 111 | 111 |
| 112 test_ANNOTATION_hasArguments() { | 112 test_ANNOTATION_hasArguments() async { |
| 113 addTestFile(''' | 113 addTestFile(''' |
| 114 class AAA { | 114 class AAA { |
| 115 const AAA(a, b, c); | 115 const AAA(a, b, c); |
| 116 } | 116 } |
| 117 @AAA(1, 2, 3) main() {} | 117 @AAA(1, 2, 3) main() {} |
| 118 '''); | 118 '''); |
| 119 return prepareHighlights().then((_) { | 119 await prepareHighlights(); |
| 120 assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA(', '@AAA('.length); | 120 assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA(', '@AAA('.length); |
| 121 assertHasRegion(HighlightRegionType.ANNOTATION, ') main', ')'.length); | 121 assertHasRegion(HighlightRegionType.ANNOTATION, ') main', ')'.length); |
| 122 }); | |
| 123 } | 122 } |
| 124 | 123 |
| 125 test_ANNOTATION_noArguments() { | 124 test_ANNOTATION_noArguments() async { |
| 126 addTestFile(''' | 125 addTestFile(''' |
| 127 const AAA = 42; | 126 const AAA = 42; |
| 128 @AAA main() {} | 127 @AAA main() {} |
| 129 '''); | 128 '''); |
| 130 return prepareHighlights().then((_) { | 129 await prepareHighlights(); |
| 131 assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA'); | 130 assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA'); |
| 132 }); | |
| 133 } | 131 } |
| 134 | 132 |
| 135 test_BUILT_IN_abstract() { | 133 test_BUILT_IN_abstract() async { |
| 136 addTestFile(''' | 134 addTestFile(''' |
| 137 abstract class A {}; | 135 abstract class A {}; |
| 138 abstract class B = Object with A; | 136 abstract class B = Object with A; |
| 139 main() { | 137 main() { |
| 140 var abstract = 42; | 138 var abstract = 42; |
| 141 }'''); | 139 }'''); |
| 142 return prepareHighlights().then((_) { | 140 await prepareHighlights(); |
| 143 assertHasRegion(HighlightRegionType.BUILT_IN, 'abstract class A'); | 141 assertHasRegion(HighlightRegionType.BUILT_IN, 'abstract class A'); |
| 144 assertHasRegion(HighlightRegionType.BUILT_IN, 'abstract class B'); | 142 assertHasRegion(HighlightRegionType.BUILT_IN, 'abstract class B'); |
| 145 assertNoRegion(HighlightRegionType.BUILT_IN, 'abstract = 42'); | 143 assertNoRegion(HighlightRegionType.BUILT_IN, 'abstract = 42'); |
| 146 }); | |
| 147 } | 144 } |
| 148 | 145 |
| 149 test_BUILT_IN_as() { | 146 test_BUILT_IN_as() async { |
| 150 addTestFile(''' | 147 addTestFile(''' |
| 151 import 'dart:math' as math; | 148 import 'dart:math' as math; |
| 152 main() { | 149 main() { |
| 153 p as int; | 150 p as int; |
| 154 var as = 42; | 151 var as = 42; |
| 155 }'''); | 152 }'''); |
| 156 return prepareHighlights().then((_) { | 153 await prepareHighlights(); |
| 157 assertHasRegion(HighlightRegionType.BUILT_IN, 'as math'); | 154 assertHasRegion(HighlightRegionType.BUILT_IN, 'as math'); |
| 158 assertHasRegion(HighlightRegionType.BUILT_IN, 'as int'); | 155 assertHasRegion(HighlightRegionType.BUILT_IN, 'as int'); |
| 159 assertNoRegion(HighlightRegionType.BUILT_IN, 'as = 42'); | 156 assertNoRegion(HighlightRegionType.BUILT_IN, 'as = 42'); |
| 160 }); | |
| 161 } | 157 } |
| 162 | 158 |
| 163 test_BUILT_IN_async() { | 159 test_BUILT_IN_async() async { |
| 164 addTestFile(''' | 160 addTestFile(''' |
| 165 fa() async {} | 161 fa() async {} |
| 166 fb() async* {} | 162 fb() async* {} |
| 167 main() { | 163 main() { |
| 168 bool async = false; | 164 bool async = false; |
| 169 } | 165 } |
| 170 '''); | 166 '''); |
| 171 return prepareHighlights().then((_) { | 167 await prepareHighlights(); |
| 172 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'async'); | 168 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'async'); |
| 173 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'async*'); | 169 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'async*'); |
| 174 assertNoRegion(HighlightRegionType.BUILT_IN, 'async = false'); | 170 assertNoRegion(HighlightRegionType.BUILT_IN, 'async = false'); |
| 175 }); | |
| 176 } | 171 } |
| 177 | 172 |
| 178 test_BUILT_IN_await() { | 173 test_BUILT_IN_await() async { |
| 179 addTestFile(''' | 174 addTestFile(''' |
| 180 main() async { | 175 main() async { |
| 181 await 42; | 176 await 42; |
| 182 await for (var item in []) { | 177 await for (var item in []) { |
| 183 print(item); | 178 print(item); |
| 184 } | 179 } |
| 185 } | 180 } |
| 186 '''); | 181 '''); |
| 187 return prepareHighlights().then((_) { | 182 await prepareHighlights(); |
| 188 assertHasRegion(HighlightRegionType.BUILT_IN, 'await 42'); | 183 assertHasRegion(HighlightRegionType.BUILT_IN, 'await 42'); |
| 189 assertHasRegion(HighlightRegionType.BUILT_IN, 'await for'); | 184 assertHasRegion(HighlightRegionType.BUILT_IN, 'await for'); |
| 190 }); | |
| 191 } | 185 } |
| 192 | 186 |
| 193 test_BUILT_IN_deferred() { | 187 test_BUILT_IN_deferred() async { |
| 194 addTestFile(''' | 188 addTestFile(''' |
| 195 import 'dart:math' deferred as math; | 189 import 'dart:math' deferred as math; |
| 196 main() { | 190 main() { |
| 197 var deferred = 42; | 191 var deferred = 42; |
| 198 }'''); | 192 }'''); |
| 199 return prepareHighlights().then((_) { | 193 await prepareHighlights(); |
| 200 assertHasRegion(HighlightRegionType.BUILT_IN, 'deferred as math'); | 194 assertHasRegion(HighlightRegionType.BUILT_IN, 'deferred as math'); |
| 201 assertNoRegion(HighlightRegionType.BUILT_IN, 'deferred = 42'); | 195 assertNoRegion(HighlightRegionType.BUILT_IN, 'deferred = 42'); |
| 202 }); | |
| 203 } | 196 } |
| 204 | 197 |
| 205 test_BUILT_IN_export() { | 198 test_BUILT_IN_export() async { |
| 206 addTestFile(''' | 199 addTestFile(''' |
| 207 export "dart:math"; | 200 export "dart:math"; |
| 208 main() { | 201 main() { |
| 209 var export = 42; | 202 var export = 42; |
| 210 }'''); | 203 }'''); |
| 211 return prepareHighlights().then((_) { | 204 await prepareHighlights(); |
| 212 assertHasRegion(HighlightRegionType.BUILT_IN, 'export "dart:'); | 205 assertHasRegion(HighlightRegionType.BUILT_IN, 'export "dart:'); |
| 213 assertNoRegion(HighlightRegionType.BUILT_IN, 'export = 42'); | 206 assertNoRegion(HighlightRegionType.BUILT_IN, 'export = 42'); |
| 214 }); | |
| 215 } | 207 } |
| 216 | 208 |
| 217 test_BUILT_IN_external() { | 209 test_BUILT_IN_external() async { |
| 218 addTestFile(''' | 210 addTestFile(''' |
| 219 class A { | 211 class A { |
| 220 external A(); | 212 external A(); |
| 221 external aaa(); | 213 external aaa(); |
| 222 } | 214 } |
| 223 external main() { | 215 external main() { |
| 224 var external = 42; | 216 var external = 42; |
| 225 }'''); | 217 }'''); |
| 226 return prepareHighlights().then((_) { | 218 await prepareHighlights(); |
| 227 assertHasRegion(HighlightRegionType.BUILT_IN, 'external A()'); | 219 assertHasRegion(HighlightRegionType.BUILT_IN, 'external A()'); |
| 228 assertHasRegion(HighlightRegionType.BUILT_IN, 'external aaa()'); | 220 assertHasRegion(HighlightRegionType.BUILT_IN, 'external aaa()'); |
| 229 assertHasRegion(HighlightRegionType.BUILT_IN, 'external main()'); | 221 assertHasRegion(HighlightRegionType.BUILT_IN, 'external main()'); |
| 230 assertNoRegion(HighlightRegionType.BUILT_IN, 'external = 42'); | 222 assertNoRegion(HighlightRegionType.BUILT_IN, 'external = 42'); |
| 231 }); | |
| 232 } | 223 } |
| 233 | 224 |
| 234 test_BUILT_IN_factory() { | 225 test_BUILT_IN_factory() async { |
| 235 addTestFile(''' | 226 addTestFile(''' |
| 236 class A { | 227 class A { |
| 237 factory A() => null; | 228 factory A() => null; |
| 238 } | 229 } |
| 239 main() { | 230 main() { |
| 240 var factory = 42; | 231 var factory = 42; |
| 241 }'''); | 232 }'''); |
| 242 return prepareHighlights().then((_) { | 233 await prepareHighlights(); |
| 243 assertHasRegion(HighlightRegionType.BUILT_IN, 'factory A()'); | 234 assertHasRegion(HighlightRegionType.BUILT_IN, 'factory A()'); |
| 244 assertNoRegion(HighlightRegionType.BUILT_IN, 'factory = 42'); | 235 assertNoRegion(HighlightRegionType.BUILT_IN, 'factory = 42'); |
| 245 }); | |
| 246 } | 236 } |
| 247 | 237 |
| 248 test_BUILT_IN_get() { | 238 test_BUILT_IN_get() async { |
| 249 addTestFile(''' | 239 addTestFile(''' |
| 250 get aaa => 1; | 240 get aaa => 1; |
| 251 class A { | 241 class A { |
| 252 get bbb => 2; | 242 get bbb => 2; |
| 253 } | 243 } |
| 254 main() { | 244 main() { |
| 255 var get = 42; | 245 var get = 42; |
| 256 }'''); | 246 }'''); |
| 257 return prepareHighlights().then((_) { | 247 await prepareHighlights(); |
| 258 assertHasRegion(HighlightRegionType.BUILT_IN, 'get aaa =>'); | 248 assertHasRegion(HighlightRegionType.BUILT_IN, 'get aaa =>'); |
| 259 assertHasRegion(HighlightRegionType.BUILT_IN, 'get bbb =>'); | 249 assertHasRegion(HighlightRegionType.BUILT_IN, 'get bbb =>'); |
| 260 assertNoRegion(HighlightRegionType.BUILT_IN, 'get = 42'); | 250 assertNoRegion(HighlightRegionType.BUILT_IN, 'get = 42'); |
| 261 }); | |
| 262 } | 251 } |
| 263 | 252 |
| 264 test_BUILT_IN_hide() { | 253 test_BUILT_IN_hide() async { |
| 265 addTestFile(''' | 254 addTestFile(''' |
| 266 import 'foo.dart' hide Foo; | 255 import 'foo.dart' hide Foo; |
| 267 main() { | 256 main() { |
| 268 var hide = 42; | 257 var hide = 42; |
| 269 }'''); | 258 }'''); |
| 270 return prepareHighlights().then((_) { | 259 await prepareHighlights(); |
| 271 assertHasRegion(HighlightRegionType.BUILT_IN, 'hide Foo'); | 260 assertHasRegion(HighlightRegionType.BUILT_IN, 'hide Foo'); |
| 272 assertNoRegion(HighlightRegionType.BUILT_IN, 'hide = 42'); | 261 assertNoRegion(HighlightRegionType.BUILT_IN, 'hide = 42'); |
| 273 }); | |
| 274 } | 262 } |
| 275 | 263 |
| 276 test_BUILT_IN_implements() { | 264 test_BUILT_IN_implements() async { |
| 277 addTestFile(''' | 265 addTestFile(''' |
| 278 class A {} | 266 class A {} |
| 279 class B implements A {} | 267 class B implements A {} |
| 280 main() { | 268 main() { |
| 281 var implements = 42; | 269 var implements = 42; |
| 282 }'''); | 270 }'''); |
| 283 return prepareHighlights().then((_) { | 271 await prepareHighlights(); |
| 284 assertHasRegion(HighlightRegionType.BUILT_IN, 'implements A {}'); | 272 assertHasRegion(HighlightRegionType.BUILT_IN, 'implements A {}'); |
| 285 assertNoRegion(HighlightRegionType.BUILT_IN, 'implements = 42'); | 273 assertNoRegion(HighlightRegionType.BUILT_IN, 'implements = 42'); |
| 286 }); | |
| 287 } | 274 } |
| 288 | 275 |
| 289 test_BUILT_IN_import() { | 276 test_BUILT_IN_import() async { |
| 290 addTestFile(''' | 277 addTestFile(''' |
| 291 import "foo.dart"; | 278 import "foo.dart"; |
| 292 main() { | 279 main() { |
| 293 var import = 42; | 280 var import = 42; |
| 294 }'''); | 281 }'''); |
| 295 return prepareHighlights().then((_) { | 282 await prepareHighlights(); |
| 296 assertHasRegion(HighlightRegionType.BUILT_IN, 'import "'); | 283 assertHasRegion(HighlightRegionType.BUILT_IN, 'import "'); |
| 297 assertNoRegion(HighlightRegionType.BUILT_IN, 'import = 42'); | 284 assertNoRegion(HighlightRegionType.BUILT_IN, 'import = 42'); |
| 298 }); | |
| 299 } | 285 } |
| 300 | 286 |
| 301 test_BUILT_IN_library() { | 287 test_BUILT_IN_library() async { |
| 302 addTestFile(''' | 288 addTestFile(''' |
| 303 library lib; | 289 library lib; |
| 304 main() { | 290 main() { |
| 305 var library = 42; | 291 var library = 42; |
| 306 }'''); | 292 }'''); |
| 307 return prepareHighlights().then((_) { | 293 await prepareHighlights(); |
| 308 assertHasRegion(HighlightRegionType.BUILT_IN, 'library lib;'); | 294 assertHasRegion(HighlightRegionType.BUILT_IN, 'library lib;'); |
| 309 assertNoRegion(HighlightRegionType.BUILT_IN, 'library = 42'); | 295 assertNoRegion(HighlightRegionType.BUILT_IN, 'library = 42'); |
| 310 }); | |
| 311 } | 296 } |
| 312 | 297 |
| 313 test_BUILT_IN_native() { | 298 test_BUILT_IN_native() async { |
| 314 addTestFile(''' | 299 addTestFile(''' |
| 315 class A native "A_native" {} | 300 class A native "A_native" {} |
| 316 class B { | 301 class B { |
| 317 bbb() native "bbb_native"; | 302 bbb() native "bbb_native"; |
| 318 } | 303 } |
| 319 main() { | 304 main() { |
| 320 var native = 42; | 305 var native = 42; |
| 321 }'''); | 306 }'''); |
| 322 return prepareHighlights().then((_) { | 307 await prepareHighlights(); |
| 323 assertHasRegion(HighlightRegionType.BUILT_IN, 'native "A_'); | 308 assertHasRegion(HighlightRegionType.BUILT_IN, 'native "A_'); |
| 324 assertHasRegion(HighlightRegionType.BUILT_IN, 'native "bbb_'); | 309 assertHasRegion(HighlightRegionType.BUILT_IN, 'native "bbb_'); |
| 325 assertNoRegion(HighlightRegionType.BUILT_IN, 'native = 42'); | 310 assertNoRegion(HighlightRegionType.BUILT_IN, 'native = 42'); |
| 326 }); | |
| 327 } | 311 } |
| 328 | 312 |
| 329 test_BUILT_IN_on() { | 313 test_BUILT_IN_on() async { |
| 330 addTestFile(''' | 314 addTestFile(''' |
| 331 main() { | 315 main() { |
| 332 try { | 316 try { |
| 333 } on int catch (e) { | 317 } on int catch (e) { |
| 334 } | 318 } |
| 335 var on = 42; | 319 var on = 42; |
| 336 }'''); | 320 }'''); |
| 337 return prepareHighlights().then((_) { | 321 await prepareHighlights(); |
| 338 assertHasRegion(HighlightRegionType.BUILT_IN, 'on int'); | 322 assertHasRegion(HighlightRegionType.BUILT_IN, 'on int'); |
| 339 assertNoRegion(HighlightRegionType.BUILT_IN, 'on = 42'); | 323 assertNoRegion(HighlightRegionType.BUILT_IN, 'on = 42'); |
| 340 }); | |
| 341 } | 324 } |
| 342 | 325 |
| 343 test_BUILT_IN_operator() { | 326 test_BUILT_IN_operator() async { |
| 344 addTestFile(''' | 327 addTestFile(''' |
| 345 class A { | 328 class A { |
| 346 operator +(x) => null; | 329 operator +(x) => null; |
| 347 } | 330 } |
| 348 main() { | 331 main() { |
| 349 var operator = 42; | 332 var operator = 42; |
| 350 }'''); | 333 }'''); |
| 351 return prepareHighlights().then((_) { | 334 await prepareHighlights(); |
| 352 assertHasRegion(HighlightRegionType.BUILT_IN, 'operator +('); | 335 assertHasRegion(HighlightRegionType.BUILT_IN, 'operator +('); |
| 353 assertNoRegion(HighlightRegionType.BUILT_IN, 'operator = 42'); | 336 assertNoRegion(HighlightRegionType.BUILT_IN, 'operator = 42'); |
| 354 }); | |
| 355 } | 337 } |
| 356 | 338 |
| 357 test_BUILT_IN_part() { | 339 test_BUILT_IN_part() async { |
| 358 addTestFile(''' | 340 addTestFile(''' |
| 359 part "my_part.dart"; | 341 part "my_part.dart"; |
| 360 main() { | 342 main() { |
| 361 var part = 42; | 343 var part = 42; |
| 362 }'''); | 344 }'''); |
| 363 addFile('/project/bin/my_part.dart', 'part of lib;'); | 345 addFile('/project/bin/my_part.dart', 'part of lib;'); |
| 364 return prepareHighlights().then((_) { | 346 await prepareHighlights(); |
| 365 assertHasRegion(HighlightRegionType.BUILT_IN, 'part "my_'); | 347 assertHasRegion(HighlightRegionType.BUILT_IN, 'part "my_'); |
| 366 assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 42'); | 348 assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 42'); |
| 367 }); | |
| 368 } | 349 } |
| 369 | 350 |
| 370 test_BUILT_IN_partOf() { | 351 test_BUILT_IN_partOf() async { |
| 371 addTestFile(''' | 352 addTestFile(''' |
| 372 part of lib; | 353 part of lib; |
| 373 main() { | 354 main() { |
| 374 var part = 1; | 355 var part = 1; |
| 375 var of = 2; | 356 var of = 2; |
| 376 }'''); | 357 }'''); |
| 377 _addLibraryForTestPart(); | 358 _addLibraryForTestPart(); |
| 378 return prepareHighlights().then((_) { | 359 await prepareHighlights(); |
| 379 assertHasRegion( | 360 assertHasRegion(HighlightRegionType.BUILT_IN, 'part of', 'part of'.length); |
| 380 HighlightRegionType.BUILT_IN, 'part of', 'part of'.length); | 361 assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 1'); |
| 381 assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 1'); | 362 assertNoRegion(HighlightRegionType.BUILT_IN, 'of = 2'); |
| 382 assertNoRegion(HighlightRegionType.BUILT_IN, 'of = 2'); | |
| 383 }); | |
| 384 } | 363 } |
| 385 | 364 |
| 386 test_BUILT_IN_set() { | 365 test_BUILT_IN_set() async { |
| 387 addTestFile(''' | 366 addTestFile(''' |
| 388 set aaa(x) {} | 367 set aaa(x) {} |
| 389 class A | 368 class A |
| 390 set bbb(x) {} | 369 set bbb(x) {} |
| 391 } | 370 } |
| 392 main() { | 371 main() { |
| 393 var set = 42; | 372 var set = 42; |
| 394 }'''); | 373 }'''); |
| 395 return prepareHighlights().then((_) { | 374 await prepareHighlights(); |
| 396 assertHasRegion(HighlightRegionType.BUILT_IN, 'set aaa('); | 375 assertHasRegion(HighlightRegionType.BUILT_IN, 'set aaa('); |
| 397 assertHasRegion(HighlightRegionType.BUILT_IN, 'set bbb('); | 376 assertHasRegion(HighlightRegionType.BUILT_IN, 'set bbb('); |
| 398 assertNoRegion(HighlightRegionType.BUILT_IN, 'set = 42'); | 377 assertNoRegion(HighlightRegionType.BUILT_IN, 'set = 42'); |
| 399 }); | |
| 400 } | 378 } |
| 401 | 379 |
| 402 test_BUILT_IN_show() { | 380 test_BUILT_IN_show() async { |
| 403 addTestFile(''' | 381 addTestFile(''' |
| 404 import 'foo.dart' show Foo; | 382 import 'foo.dart' show Foo; |
| 405 main() { | 383 main() { |
| 406 var show = 42; | 384 var show = 42; |
| 407 }'''); | 385 }'''); |
| 408 return prepareHighlights().then((_) { | 386 await prepareHighlights(); |
| 409 assertHasRegion(HighlightRegionType.BUILT_IN, 'show Foo'); | 387 assertHasRegion(HighlightRegionType.BUILT_IN, 'show Foo'); |
| 410 assertNoRegion(HighlightRegionType.BUILT_IN, 'show = 42'); | 388 assertNoRegion(HighlightRegionType.BUILT_IN, 'show = 42'); |
| 411 }); | |
| 412 } | 389 } |
| 413 | 390 |
| 414 test_BUILT_IN_static() { | 391 test_BUILT_IN_static() async { |
| 415 addTestFile(''' | 392 addTestFile(''' |
| 416 class A { | 393 class A { |
| 417 static aaa; | 394 static aaa; |
| 418 static bbb() {} | 395 static bbb() {} |
| 419 } | 396 } |
| 420 main() { | 397 main() { |
| 421 var static = 42; | 398 var static = 42; |
| 422 }'''); | 399 }'''); |
| 423 return prepareHighlights().then((_) { | 400 await prepareHighlights(); |
| 424 assertHasRegion(HighlightRegionType.BUILT_IN, 'static aaa;'); | 401 assertHasRegion(HighlightRegionType.BUILT_IN, 'static aaa;'); |
| 425 assertHasRegion(HighlightRegionType.BUILT_IN, 'static bbb()'); | 402 assertHasRegion(HighlightRegionType.BUILT_IN, 'static bbb()'); |
| 426 assertNoRegion(HighlightRegionType.BUILT_IN, 'static = 42'); | 403 assertNoRegion(HighlightRegionType.BUILT_IN, 'static = 42'); |
| 427 }); | |
| 428 } | 404 } |
| 429 | 405 |
| 430 test_BUILT_IN_sync() { | 406 test_BUILT_IN_sync() async { |
| 431 addTestFile(''' | 407 addTestFile(''' |
| 432 fa() sync {} | 408 fa() sync {} |
| 433 fb() sync* {} | 409 fb() sync* {} |
| 434 main() { | 410 main() { |
| 435 bool sync = false; | 411 bool sync = false; |
| 436 } | 412 } |
| 437 '''); | 413 '''); |
| 438 return prepareHighlights().then((_) { | 414 await prepareHighlights(); |
| 439 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'sync'); | 415 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'sync'); |
| 440 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'sync*'); | 416 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'sync*'); |
| 441 assertNoRegion(HighlightRegionType.BUILT_IN, 'sync = false'); | 417 assertNoRegion(HighlightRegionType.BUILT_IN, 'sync = false'); |
| 442 }); | |
| 443 } | 418 } |
| 444 | 419 |
| 445 test_BUILT_IN_typedef() { | 420 test_BUILT_IN_typedef() async { |
| 446 addTestFile(''' | 421 addTestFile(''' |
| 447 typedef A(); | 422 typedef A(); |
| 448 main() { | 423 main() { |
| 449 var typedef = 42; | 424 var typedef = 42; |
| 450 }'''); | 425 }'''); |
| 451 return prepareHighlights().then((_) { | 426 await prepareHighlights(); |
| 452 assertHasRegion(HighlightRegionType.BUILT_IN, 'typedef A();'); | 427 assertHasRegion(HighlightRegionType.BUILT_IN, 'typedef A();'); |
| 453 assertNoRegion(HighlightRegionType.BUILT_IN, 'typedef = 42'); | 428 assertNoRegion(HighlightRegionType.BUILT_IN, 'typedef = 42'); |
| 454 }); | |
| 455 } | 429 } |
| 456 | 430 |
| 457 test_BUILT_IN_yield() { | 431 test_BUILT_IN_yield() async { |
| 458 addTestFile(''' | 432 addTestFile(''' |
| 459 main() async* { | 433 main() async* { |
| 460 yield 42; | 434 yield 42; |
| 461 } | 435 } |
| 462 '''); | 436 '''); |
| 463 return prepareHighlights().then((_) { | 437 await prepareHighlights(); |
| 464 assertHasRegion(HighlightRegionType.BUILT_IN, 'yield 42'); | 438 assertHasRegion(HighlightRegionType.BUILT_IN, 'yield 42'); |
| 465 }); | |
| 466 } | 439 } |
| 467 | 440 |
| 468 test_BUILT_IN_yieldStar() { | 441 test_BUILT_IN_yieldStar() async { |
| 469 addTestFile(''' | 442 addTestFile(''' |
| 470 main() async* { | 443 main() async* { |
| 471 yield* []; | 444 yield* []; |
| 472 } | 445 } |
| 473 '''); | 446 '''); |
| 474 return prepareHighlights().then((_) { | 447 await prepareHighlights(); |
| 475 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'yield*'); | 448 assertHasStringRegion(HighlightRegionType.BUILT_IN, 'yield*'); |
| 476 }); | |
| 477 } | 449 } |
| 478 | 450 |
| 479 test_CLASS() { | 451 test_CLASS() async { |
| 480 addTestFile(''' | 452 addTestFile(''' |
| 481 class AAA {} | 453 class AAA {} |
| 482 AAA aaa; | 454 AAA aaa; |
| 483 '''); | 455 '''); |
| 484 return prepareHighlights().then((_) { | 456 await prepareHighlights(); |
| 485 assertHasRegion(HighlightRegionType.CLASS, 'AAA {}'); | 457 assertHasRegion(HighlightRegionType.CLASS, 'AAA {}'); |
| 486 assertHasRegion(HighlightRegionType.CLASS, 'AAA aaa'); | 458 assertHasRegion(HighlightRegionType.CLASS, 'AAA aaa'); |
| 487 }); | |
| 488 } | 459 } |
| 489 | 460 |
| 490 test_CLASS_notDynamic() { | 461 test_CLASS_notDynamic() async { |
| 491 addTestFile(''' | 462 addTestFile(''' |
| 492 dynamic f() {} | 463 dynamic f() {} |
| 493 '''); | 464 '''); |
| 494 return prepareHighlights().then((_) { | 465 await prepareHighlights(); |
| 495 assertNoRegion(HighlightRegionType.CLASS, 'dynamic f()'); | 466 assertNoRegion(HighlightRegionType.CLASS, 'dynamic f()'); |
| 496 }); | |
| 497 } | 467 } |
| 498 | 468 |
| 499 test_CLASS_notVoid() { | 469 test_CLASS_notVoid() async { |
| 500 addTestFile(''' | 470 addTestFile(''' |
| 501 void f() {} | 471 void f() {} |
| 502 '''); | 472 '''); |
| 503 return prepareHighlights().then((_) { | 473 await prepareHighlights(); |
| 504 assertNoRegion(HighlightRegionType.CLASS, 'void f()'); | 474 assertNoRegion(HighlightRegionType.CLASS, 'void f()'); |
| 505 }); | |
| 506 } | 475 } |
| 507 | 476 |
| 508 test_COMMENT() { | 477 test_COMMENT() async { |
| 509 addTestFile(''' | 478 addTestFile(''' |
| 510 /** | 479 /** |
| 511 * documentation comment | 480 * documentation comment |
| 512 */ | 481 */ |
| 513 void main() { | 482 void main() { |
| 514 // end-of-line comment | 483 // end-of-line comment |
| 515 my_function(1); | 484 my_function(1); |
| 516 } | 485 } |
| 517 | 486 |
| 518 void my_function(String a) { | 487 void my_function(String a) { |
| 519 /* block comment */ | 488 /* block comment */ |
| 520 } | 489 } |
| 521 '''); | 490 '''); |
| 522 return prepareHighlights().then((_) { | 491 await prepareHighlights(); |
| 523 assertHasRegion(HighlightRegionType.COMMENT_DOCUMENTATION, '/**', 32); | 492 assertHasRegion(HighlightRegionType.COMMENT_DOCUMENTATION, '/**', 32); |
| 524 assertHasRegion(HighlightRegionType.COMMENT_END_OF_LINE, '//', 22); | 493 assertHasRegion(HighlightRegionType.COMMENT_END_OF_LINE, '//', 22); |
| 525 assertHasRegion(HighlightRegionType.COMMENT_BLOCK, '/* b', 19); | 494 assertHasRegion(HighlightRegionType.COMMENT_BLOCK, '/* b', 19); |
| 526 }); | |
| 527 } | 495 } |
| 528 | 496 |
| 529 test_CONSTRUCTOR() { | 497 test_CONSTRUCTOR() async { |
| 530 addTestFile(''' | 498 addTestFile(''' |
| 531 class AAA { | 499 class AAA { |
| 532 AAA() {} | 500 AAA() {} |
| 533 AAA.name(p) {} | 501 AAA.name(p) {} |
| 534 } | 502 } |
| 535 main() { | 503 main() { |
| 536 new AAA(); | 504 new AAA(); |
| 537 new AAA.name(42); | 505 new AAA.name(42); |
| 538 } | 506 } |
| 539 '''); | 507 '''); |
| 540 return prepareHighlights().then((_) { | 508 await prepareHighlights(); |
| 541 assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(p)'); | 509 assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(p)'); |
| 542 assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(42)'); | 510 assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(42)'); |
| 543 assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA() {}'); | 511 assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA() {}'); |
| 544 assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA();'); | 512 assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA();'); |
| 545 }); | |
| 546 } | 513 } |
| 547 | 514 |
| 548 test_DIRECTIVE() { | 515 test_DIRECTIVE() async { |
| 549 addTestFile(''' | 516 addTestFile(''' |
| 550 library lib; | 517 library lib; |
| 551 import 'dart:math'; | 518 import 'dart:math'; |
| 552 export 'dart:math'; | 519 export 'dart:math'; |
| 553 part 'part.dart'; | 520 part 'part.dart'; |
| 554 '''); | 521 '''); |
| 555 return prepareHighlights().then((_) { | 522 await prepareHighlights(); |
| 556 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "library lib;"); | 523 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "library lib;"); |
| 557 assertHasStringRegion( | 524 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "import 'dart:math';"); |
| 558 HighlightRegionType.DIRECTIVE, "import 'dart:math';"); | 525 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "export 'dart:math';"); |
| 559 assertHasStringRegion( | 526 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part 'part.dart';"); |
| 560 HighlightRegionType.DIRECTIVE, "export 'dart:math';"); | |
| 561 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part 'part.dart';"); | |
| 562 }); | |
| 563 } | 527 } |
| 564 | 528 |
| 565 test_DIRECTIVE_partOf() { | 529 test_DIRECTIVE_partOf() async { |
| 566 addTestFile(''' | 530 addTestFile(''' |
| 567 part of lib; | 531 part of lib; |
| 568 '''); | 532 '''); |
| 569 _addLibraryForTestPart(); | 533 _addLibraryForTestPart(); |
| 570 return prepareHighlights().then((_) { | 534 await prepareHighlights(); |
| 571 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part of lib;"); | 535 assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part of lib;"); |
| 572 }); | |
| 573 } | 536 } |
| 574 | 537 |
| 575 test_DYNAMIC_LOCAL_VARIABLE() { | 538 test_DYNAMIC_LOCAL_VARIABLE() async { |
| 576 addTestFile(''' | 539 addTestFile(''' |
| 577 f() {} | 540 f() {} |
| 578 main(p) { | 541 main(p) { |
| 579 var v = f(); | 542 var v = f(); |
| 580 v; | 543 v; |
| 581 } | 544 } |
| 582 '''); | 545 '''); |
| 583 return prepareHighlights().then((_) { | 546 await prepareHighlights(); |
| 584 assertHasRegion( | 547 assertHasRegion( |
| 585 HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_DECLARATION, 'v = f()'); | 548 HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_DECLARATION, 'v = f()'); |
| 586 assertHasRegion( | 549 assertHasRegion(HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_REFERENCE, 'v;'); |
| 587 HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_REFERENCE, 'v;'); | |
| 588 }); | |
| 589 } | 550 } |
| 590 | 551 |
| 591 test_DYNAMIC_PARAMETER() { | 552 test_DYNAMIC_PARAMETER() async { |
| 592 addTestFile(''' | 553 addTestFile(''' |
| 593 main(p) { | 554 main(p) { |
| 594 print(p); | 555 print(p); |
| 595 } | 556 } |
| 596 '''); | 557 '''); |
| 597 return prepareHighlights().then((_) { | 558 await prepareHighlights(); |
| 598 assertHasRegion(HighlightRegionType.DYNAMIC_PARAMETER_DECLARATION, 'p)'); | 559 assertHasRegion(HighlightRegionType.DYNAMIC_PARAMETER_DECLARATION, 'p)'); |
| 599 assertHasRegion(HighlightRegionType.DYNAMIC_PARAMETER_REFERENCE, 'p);'); | 560 assertHasRegion(HighlightRegionType.DYNAMIC_PARAMETER_REFERENCE, 'p);'); |
| 600 }); | |
| 601 } | 561 } |
| 602 | 562 |
| 603 test_DYNAMIC_VARIABLE_field() { | 563 test_DYNAMIC_VARIABLE_field() async { |
| 604 addTestFile(''' | 564 addTestFile(''' |
| 605 class A { | 565 class A { |
| 606 var f; | 566 var f; |
| 607 m() { | 567 m() { |
| 608 f = 1; | 568 f = 1; |
| 609 } | 569 } |
| 610 } | 570 } |
| 611 '''); | 571 '''); |
| 612 return prepareHighlights().then((_) { | 572 await prepareHighlights(); |
| 613 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'f;'); | 573 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'f;'); |
| 614 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'f = 1'); | 574 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'f = 1'); |
| 615 }); | |
| 616 } | 575 } |
| 617 | 576 |
| 618 test_ENUM() { | 577 test_ENUM() async { |
| 619 addTestFile(''' | 578 addTestFile(''' |
| 620 enum MyEnum {A, B, C} | 579 enum MyEnum {A, B, C} |
| 621 MyEnum value; | 580 MyEnum value; |
| 622 '''); | 581 '''); |
| 623 return prepareHighlights().then((_) { | 582 await prepareHighlights(); |
| 624 assertHasRegion(HighlightRegionType.ENUM, 'MyEnum {'); | 583 assertHasRegion(HighlightRegionType.ENUM, 'MyEnum {'); |
| 625 assertHasRegion(HighlightRegionType.ENUM, 'MyEnum value;'); | 584 assertHasRegion(HighlightRegionType.ENUM, 'MyEnum value;'); |
| 626 }); | |
| 627 } | 585 } |
| 628 | 586 |
| 629 test_ENUM_CONSTANT() { | 587 test_ENUM_CONSTANT() async { |
| 630 addTestFile(''' | 588 addTestFile(''' |
| 631 enum MyEnum {AAA, BBB} | 589 enum MyEnum {AAA, BBB} |
| 632 main() { | 590 main() { |
| 633 print(MyEnum.AAA); | 591 print(MyEnum.AAA); |
| 634 print(MyEnum.BBB); | 592 print(MyEnum.BBB); |
| 635 } | 593 } |
| 636 '''); | 594 '''); |
| 637 return prepareHighlights().then((_) { | 595 await prepareHighlights(); |
| 638 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'AAA, '); | 596 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'AAA, '); |
| 639 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'BBB}'); | 597 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'BBB}'); |
| 640 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'AAA);'); | 598 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'AAA);'); |
| 641 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'BBB);'); | 599 assertHasRegion(HighlightRegionType.ENUM_CONSTANT, 'BBB);'); |
| 642 }); | |
| 643 } | 600 } |
| 644 | 601 |
| 645 test_FUNCTION_TYPE_ALIAS() { | 602 test_FUNCTION_TYPE_ALIAS() async { |
| 646 addTestFile(''' | 603 addTestFile(''' |
| 647 typedef FFF(p); | 604 typedef FFF(p); |
| 648 main(FFF fff) { | 605 main(FFF fff) { |
| 649 } | 606 } |
| 650 '''); | 607 '''); |
| 651 return prepareHighlights().then((_) { | 608 await prepareHighlights(); |
| 652 assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF(p)'); | 609 assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF(p)'); |
| 653 assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF fff)'); | 610 assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF fff)'); |
| 654 }); | |
| 655 } | 611 } |
| 656 | 612 |
| 657 test_GETTER() { | 613 test_GETTER() async { |
| 658 addTestFile(''' | 614 addTestFile(''' |
| 659 get aaa => null; | 615 get aaa => null; |
| 660 class A { | 616 class A { |
| 661 get bbb => null; | 617 get bbb => null; |
| 662 static get ccc => null; | 618 static get ccc => null; |
| 663 } | 619 } |
| 664 main(A a) { | 620 main(A a) { |
| 665 aaa; | 621 aaa; |
| 666 a.bbb; | 622 a.bbb; |
| 667 A.ccc; | 623 A.ccc; |
| 668 } | 624 } |
| 669 '''); | 625 '''); |
| 670 return prepareHighlights().then((_) { | 626 await prepareHighlights(); |
| 671 assertHasRegion( | 627 assertHasRegion( |
| 672 HighlightRegionType.TOP_LEVEL_GETTER_DECLARATION, 'aaa => null'); | 628 HighlightRegionType.TOP_LEVEL_GETTER_DECLARATION, 'aaa => null'); |
| 673 assertHasRegion( | 629 assertHasRegion( |
| 674 HighlightRegionType.INSTANCE_GETTER_DECLARATION, 'bbb => null'); | 630 HighlightRegionType.INSTANCE_GETTER_DECLARATION, 'bbb => null'); |
| 675 assertHasRegion( | 631 assertHasRegion( |
| 676 HighlightRegionType.STATIC_GETTER_DECLARATION, 'ccc => null'); | 632 HighlightRegionType.STATIC_GETTER_DECLARATION, 'ccc => null'); |
| 677 assertHasRegion(HighlightRegionType.TOP_LEVEL_GETTER_REFERENCE, 'aaa;'); | 633 assertHasRegion(HighlightRegionType.TOP_LEVEL_GETTER_REFERENCE, 'aaa;'); |
| 678 assertHasRegion(HighlightRegionType.INSTANCE_GETTER_REFERENCE, 'bbb;'); | 634 assertHasRegion(HighlightRegionType.INSTANCE_GETTER_REFERENCE, 'bbb;'); |
| 679 assertHasRegion(HighlightRegionType.STATIC_GETTER_REFERENCE, 'ccc;'); | 635 assertHasRegion(HighlightRegionType.STATIC_GETTER_REFERENCE, 'ccc;'); |
| 680 }); | |
| 681 } | 636 } |
| 682 | 637 |
| 683 test_IDENTIFIER_DEFAULT() { | 638 test_IDENTIFIER_DEFAULT() async { |
| 684 addTestFile(''' | 639 addTestFile(''' |
| 685 main() { | 640 main() { |
| 686 aaa = 42; | 641 aaa = 42; |
| 687 bbb(84); | 642 bbb(84); |
| 688 CCC ccc; | 643 CCC ccc; |
| 689 } | 644 } |
| 690 '''); | 645 '''); |
| 691 return prepareHighlights().then((_) { | 646 await prepareHighlights(); |
| 692 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'aaa = 42'); | 647 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'aaa = 42'); |
| 693 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'bbb(84)'); | 648 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'bbb(84)'); |
| 694 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'CCC ccc'); | 649 assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'CCC ccc'); |
| 695 }); | |
| 696 } | 650 } |
| 697 | 651 |
| 698 test_IMPORT_PREFIX() { | 652 test_IMPORT_PREFIX() async { |
| 699 addTestFile(''' | 653 addTestFile(''' |
| 700 import 'dart:math' as ma; | 654 import 'dart:math' as ma; |
| 701 main() { | 655 main() { |
| 702 ma.max(1, 2); | 656 ma.max(1, 2); |
| 703 } | 657 } |
| 704 '''); | 658 '''); |
| 705 return prepareHighlights().then((_) { | 659 await prepareHighlights(); |
| 706 assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma;'); | 660 assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma;'); |
| 707 assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma.max'); | 661 assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma.max'); |
| 708 }); | |
| 709 } | 662 } |
| 710 | 663 |
| 711 test_INSTANCE_FIELD() { | 664 test_INSTANCE_FIELD() async { |
| 712 addTestFile(''' | 665 addTestFile(''' |
| 713 class A { | 666 class A { |
| 714 int aaa = 1; | 667 int aaa = 1; |
| 715 int bbb = 2; | 668 int bbb = 2; |
| 716 A([this.bbb = 3]); | 669 A([this.bbb = 3]); |
| 717 } | 670 } |
| 718 main(A a) { | 671 main(A a) { |
| 719 a.aaa = 4; | 672 a.aaa = 4; |
| 720 a.bbb = 5; | 673 a.bbb = 5; |
| 721 } | 674 } |
| 722 '''); | 675 '''); |
| 723 return prepareHighlights().then((_) { | 676 await prepareHighlights(); |
| 724 assertHasRegion( | 677 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'aaa = 1'); |
| 725 HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'aaa = 1'); | 678 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'bbb = 2'); |
| 726 assertHasRegion( | 679 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_REFERENCE, 'bbb = 3'); |
| 727 HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'bbb = 2'); | 680 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'aaa = 4'); |
| 728 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_REFERENCE, 'bbb = 3'); | 681 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'bbb = 5'); |
| 729 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'aaa = 4'); | |
| 730 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'bbb = 5'); | |
| 731 }); | |
| 732 } | 682 } |
| 733 | 683 |
| 734 test_INSTANCE_FIELD_dynamic() { | 684 test_INSTANCE_FIELD_dynamic() async { |
| 735 addTestFile(''' | 685 addTestFile(''' |
| 736 class A { | 686 class A { |
| 737 var f; | 687 var f; |
| 738 A(this.f); | 688 A(this.f); |
| 739 } | 689 } |
| 740 '''); | 690 '''); |
| 741 return prepareHighlights().then((_) { | 691 await prepareHighlights(); |
| 742 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'f;'); | 692 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_DECLARATION, 'f;'); |
| 743 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_REFERENCE, 'f);'); | 693 assertHasRegion(HighlightRegionType.INSTANCE_FIELD_REFERENCE, 'f);'); |
| 744 }); | |
| 745 } | 694 } |
| 746 | 695 |
| 747 test_KEYWORD() { | 696 test_KEYWORD() async { |
| 748 addTestFile(''' | 697 addTestFile(''' |
| 749 main() { | 698 main() { |
| 750 assert(true); | 699 assert(true); |
| 751 for (;;) break; | 700 for (;;) break; |
| 752 switch (0) { | 701 switch (0) { |
| 753 case 0: break; | 702 case 0: break; |
| 754 default: break; | 703 default: break; |
| 755 } | 704 } |
| 756 try {} catch (e) {} | 705 try {} catch (e) {} |
| 757 const v1 = 0; | 706 const v1 = 0; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 770 } | 719 } |
| 771 class A {} | 720 class A {} |
| 772 class B extends A { | 721 class B extends A { |
| 773 B() : super(); | 722 B() : super(); |
| 774 m() { | 723 m() { |
| 775 return this; | 724 return this; |
| 776 } | 725 } |
| 777 } | 726 } |
| 778 class C = Object with A; | 727 class C = Object with A; |
| 779 '''); | 728 '''); |
| 780 return prepareHighlights().then((_) { | 729 await prepareHighlights(); |
| 781 assertHasRegion(HighlightRegionType.KEYWORD, 'assert(true)'); | 730 assertHasRegion(HighlightRegionType.KEYWORD, 'assert(true)'); |
| 782 assertHasRegion(HighlightRegionType.KEYWORD, 'for (;;)'); | 731 assertHasRegion(HighlightRegionType.KEYWORD, 'for (;;)'); |
| 783 assertHasRegion(HighlightRegionType.KEYWORD, 'for (var v4 in'); | 732 assertHasRegion(HighlightRegionType.KEYWORD, 'for (var v4 in'); |
| 784 assertHasRegion(HighlightRegionType.KEYWORD, 'break;'); | 733 assertHasRegion(HighlightRegionType.KEYWORD, 'break;'); |
| 785 assertHasRegion(HighlightRegionType.KEYWORD, 'case 0:'); | 734 assertHasRegion(HighlightRegionType.KEYWORD, 'case 0:'); |
| 786 assertHasRegion(HighlightRegionType.KEYWORD, 'catch (e) {}'); | 735 assertHasRegion(HighlightRegionType.KEYWORD, 'catch (e) {}'); |
| 787 assertHasRegion(HighlightRegionType.KEYWORD, 'class A {}'); | 736 assertHasRegion(HighlightRegionType.KEYWORD, 'class A {}'); |
| 788 assertHasRegion(HighlightRegionType.KEYWORD, 'const v1'); | 737 assertHasRegion(HighlightRegionType.KEYWORD, 'const v1'); |
| 789 assertHasRegion(HighlightRegionType.KEYWORD, 'continue;'); | 738 assertHasRegion(HighlightRegionType.KEYWORD, 'continue;'); |
| 790 assertHasRegion(HighlightRegionType.KEYWORD, 'default:'); | 739 assertHasRegion(HighlightRegionType.KEYWORD, 'default:'); |
| 791 assertHasRegion(HighlightRegionType.KEYWORD, 'do {} while'); | 740 assertHasRegion(HighlightRegionType.KEYWORD, 'do {} while'); |
| 792 assertHasRegion(HighlightRegionType.KEYWORD, 'if (true)'); | 741 assertHasRegion(HighlightRegionType.KEYWORD, 'if (true)'); |
| 793 assertHasRegion(HighlightRegionType.KEYWORD, 'false;'); | 742 assertHasRegion(HighlightRegionType.KEYWORD, 'false;'); |
| 794 assertHasRegion(HighlightRegionType.KEYWORD, 'final v3 ='); | 743 assertHasRegion(HighlightRegionType.KEYWORD, 'final v3 ='); |
| 795 assertHasRegion(HighlightRegionType.KEYWORD, 'finally {}'); | 744 assertHasRegion(HighlightRegionType.KEYWORD, 'finally {}'); |
| 796 assertHasRegion(HighlightRegionType.KEYWORD, 'in []'); | 745 assertHasRegion(HighlightRegionType.KEYWORD, 'in []'); |
| 797 assertHasRegion(HighlightRegionType.KEYWORD, 'is int'); | 746 assertHasRegion(HighlightRegionType.KEYWORD, 'is int'); |
| 798 assertHasRegion(HighlightRegionType.KEYWORD, 'new A();'); | 747 assertHasRegion(HighlightRegionType.KEYWORD, 'new A();'); |
| 799 assertHasRegion(HighlightRegionType.KEYWORD, 'rethrow;'); | 748 assertHasRegion(HighlightRegionType.KEYWORD, 'rethrow;'); |
| 800 assertHasRegion(HighlightRegionType.KEYWORD, 'return this'); | 749 assertHasRegion(HighlightRegionType.KEYWORD, 'return this'); |
| 801 assertHasRegion(HighlightRegionType.KEYWORD, 'super();'); | 750 assertHasRegion(HighlightRegionType.KEYWORD, 'super();'); |
| 802 assertHasRegion(HighlightRegionType.KEYWORD, 'switch (0)'); | 751 assertHasRegion(HighlightRegionType.KEYWORD, 'switch (0)'); |
| 803 assertHasRegion(HighlightRegionType.KEYWORD, 'this;'); | 752 assertHasRegion(HighlightRegionType.KEYWORD, 'this;'); |
| 804 assertHasRegion(HighlightRegionType.KEYWORD, 'true;'); | 753 assertHasRegion(HighlightRegionType.KEYWORD, 'true;'); |
| 805 assertHasRegion(HighlightRegionType.KEYWORD, 'try {'); | 754 assertHasRegion(HighlightRegionType.KEYWORD, 'try {'); |
| 806 assertHasRegion(HighlightRegionType.KEYWORD, 'while (true) {}'); | 755 assertHasRegion(HighlightRegionType.KEYWORD, 'while (true) {}'); |
| 807 assertHasRegion(HighlightRegionType.KEYWORD, 'while (true);'); | 756 assertHasRegion(HighlightRegionType.KEYWORD, 'while (true);'); |
| 808 assertHasRegion(HighlightRegionType.KEYWORD, 'with A;'); | 757 assertHasRegion(HighlightRegionType.KEYWORD, 'with A;'); |
| 809 }); | |
| 810 } | 758 } |
| 811 | 759 |
| 812 test_KEYWORD_void() { | 760 test_KEYWORD_void() async { |
| 813 addTestFile(''' | 761 addTestFile(''' |
| 814 void main() { | 762 void main() { |
| 815 } | 763 } |
| 816 '''); | 764 '''); |
| 817 return prepareHighlights().then((_) { | 765 await prepareHighlights(); |
| 818 assertHasRegion(HighlightRegionType.KEYWORD, 'void main()'); | 766 assertHasRegion(HighlightRegionType.KEYWORD, 'void main()'); |
| 819 }); | |
| 820 } | 767 } |
| 821 | 768 |
| 822 test_LABEL() { | 769 test_LABEL() async { |
| 823 addTestFile(''' | 770 addTestFile(''' |
| 824 main() { | 771 main() { |
| 825 myLabel: | 772 myLabel: |
| 826 while (true) { | 773 while (true) { |
| 827 break myLabel; | 774 break myLabel; |
| 828 } | 775 } |
| 829 } | 776 } |
| 830 '''); | 777 '''); |
| 831 return prepareHighlights().then((_) { | 778 await prepareHighlights(); |
| 832 assertHasRegion(HighlightRegionType.LABEL, 'myLabel:'); | 779 assertHasRegion(HighlightRegionType.LABEL, 'myLabel:'); |
| 833 assertHasRegion(HighlightRegionType.LABEL, 'myLabel;'); | 780 assertHasRegion(HighlightRegionType.LABEL, 'myLabel;'); |
| 834 }); | |
| 835 } | 781 } |
| 836 | 782 |
| 837 test_LIBRARY_NAME_libraryDirective() { | 783 test_LIBRARY_NAME_libraryDirective() async { |
| 838 addTestFile(''' | 784 addTestFile(''' |
| 839 library my.lib.name; | 785 library my.lib.name; |
| 840 '''); | 786 '''); |
| 841 return prepareHighlights().then((_) { | 787 await prepareHighlights(); |
| 842 assertHasStringRegion(HighlightRegionType.LIBRARY_NAME, 'my.lib.name'); | 788 assertHasStringRegion(HighlightRegionType.LIBRARY_NAME, 'my.lib.name'); |
| 843 }); | |
| 844 } | 789 } |
| 845 | 790 |
| 846 test_LIBRARY_NAME_partOfDirective() { | 791 test_LIBRARY_NAME_partOfDirective() async { |
| 847 _addLibraryForTestPart(); | 792 _addLibraryForTestPart(); |
| 848 addTestFile(''' | 793 addTestFile(''' |
| 849 part of my.lib.name; | 794 part of my.lib.name; |
| 850 '''); | 795 '''); |
| 851 return prepareHighlights().then((_) { | 796 await prepareHighlights(); |
| 852 assertHasStringRegion(HighlightRegionType.LIBRARY_NAME, 'my.lib.name'); | 797 assertHasStringRegion(HighlightRegionType.LIBRARY_NAME, 'my.lib.name'); |
| 853 }); | |
| 854 } | 798 } |
| 855 | 799 |
| 856 test_LITERAL_BOOLEAN() { | 800 test_LITERAL_BOOLEAN() async { |
| 857 addTestFile('var V = true;'); | 801 addTestFile('var V = true;'); |
| 858 return prepareHighlights().then((_) { | 802 await prepareHighlights(); |
| 859 assertHasRegion(HighlightRegionType.LITERAL_BOOLEAN, 'true;'); | 803 assertHasRegion(HighlightRegionType.LITERAL_BOOLEAN, 'true;'); |
| 860 }); | |
| 861 } | 804 } |
| 862 | 805 |
| 863 test_LITERAL_DOUBLE() { | 806 test_LITERAL_DOUBLE() async { |
| 864 addTestFile('var V = 4.2;'); | 807 addTestFile('var V = 4.2;'); |
| 865 return prepareHighlights().then((_) { | 808 await prepareHighlights(); |
| 866 assertHasRegion(HighlightRegionType.LITERAL_DOUBLE, '4.2;', '4.2'.length); | 809 assertHasRegion(HighlightRegionType.LITERAL_DOUBLE, '4.2;', '4.2'.length); |
| 867 }); | |
| 868 } | 810 } |
| 869 | 811 |
| 870 test_LITERAL_INTEGER() { | 812 test_LITERAL_INTEGER() async { |
| 871 addTestFile('var V = 42;'); | 813 addTestFile('var V = 42;'); |
| 872 return prepareHighlights().then((_) { | 814 await prepareHighlights(); |
| 873 assertHasRegion(HighlightRegionType.LITERAL_INTEGER, '42;'); | 815 assertHasRegion(HighlightRegionType.LITERAL_INTEGER, '42;'); |
| 874 }); | |
| 875 } | 816 } |
| 876 | 817 |
| 877 test_LITERAL_LIST() { | 818 test_LITERAL_LIST() async { |
| 878 addTestFile('var V = <int>[1, 2, 3];'); | 819 addTestFile('var V = <int>[1, 2, 3];'); |
| 879 return prepareHighlights().then((_) { | 820 await prepareHighlights(); |
| 880 assertHasStringRegion(HighlightRegionType.LITERAL_LIST, '<int>[1, 2, 3]'); | 821 assertHasStringRegion(HighlightRegionType.LITERAL_LIST, '<int>[1, 2, 3]'); |
| 881 }); | |
| 882 } | 822 } |
| 883 | 823 |
| 884 test_LITERAL_MAP() { | 824 test_LITERAL_MAP() async { |
| 885 addTestFile("var V = const <int, String>{1: 'a', 2: 'b', 3: 'c'};"); | 825 addTestFile("var V = const <int, String>{1: 'a', 2: 'b', 3: 'c'};"); |
| 886 return prepareHighlights().then((_) { | 826 await prepareHighlights(); |
| 887 assertHasStringRegion(HighlightRegionType.LITERAL_MAP, | 827 assertHasStringRegion(HighlightRegionType.LITERAL_MAP, |
| 888 "const <int, String>{1: 'a', 2: 'b', 3: 'c'}"); | 828 "const <int, String>{1: 'a', 2: 'b', 3: 'c'}"); |
| 889 }); | |
| 890 } | 829 } |
| 891 | 830 |
| 892 test_LITERAL_STRING() { | 831 test_LITERAL_STRING() async { |
| 893 addTestFile('var V = "abc";'); | 832 addTestFile('var V = "abc";'); |
| 894 return prepareHighlights().then((_) { | 833 await prepareHighlights(); |
| 895 assertHasRegion( | 834 assertHasRegion( |
| 896 HighlightRegionType.LITERAL_STRING, '"abc";', '"abc"'.length); | 835 HighlightRegionType.LITERAL_STRING, '"abc";', '"abc"'.length); |
| 897 }); | |
| 898 } | 836 } |
| 899 | 837 |
| 900 test_LOCAL_FUNCTION() { | 838 test_LOCAL_FUNCTION() async { |
| 901 addTestFile(''' | 839 addTestFile(''' |
| 902 main() { | 840 main() { |
| 903 fff() {} | 841 fff() {} |
| 904 fff(); | 842 fff(); |
| 905 fff; | 843 fff; |
| 906 } | 844 } |
| 907 '''); | 845 '''); |
| 908 return prepareHighlights().then((_) { | 846 await prepareHighlights(); |
| 909 assertHasRegion( | 847 assertHasRegion(HighlightRegionType.LOCAL_FUNCTION_DECLARATION, 'fff() {}'); |
| 910 HighlightRegionType.LOCAL_FUNCTION_DECLARATION, 'fff() {}'); | 848 assertHasRegion(HighlightRegionType.LOCAL_FUNCTION_REFERENCE, 'fff();'); |
| 911 assertHasRegion(HighlightRegionType.LOCAL_FUNCTION_REFERENCE, 'fff();'); | 849 assertHasRegion(HighlightRegionType.LOCAL_FUNCTION_REFERENCE, 'fff;'); |
| 912 assertHasRegion(HighlightRegionType.LOCAL_FUNCTION_REFERENCE, 'fff;'); | |
| 913 }); | |
| 914 } | 850 } |
| 915 | 851 |
| 916 test_LOCAL_VARIABLE() { | 852 test_LOCAL_VARIABLE() async { |
| 917 addTestFile(''' | 853 addTestFile(''' |
| 918 main() { | 854 main() { |
| 919 int vvv = 0; | 855 int vvv = 0; |
| 920 vvv; | 856 vvv; |
| 921 vvv = 1; | 857 vvv = 1; |
| 922 } | 858 } |
| 923 '''); | 859 '''); |
| 924 return prepareHighlights().then((_) { | 860 await prepareHighlights(); |
| 925 assertHasRegion( | 861 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, 'vvv = 0'); |
| 926 HighlightRegionType.LOCAL_VARIABLE_DECLARATION, 'vvv = 0'); | 862 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_REFERENCE, 'vvv;'); |
| 927 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_REFERENCE, 'vvv;'); | 863 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_REFERENCE, 'vvv = 1;'); |
| 928 assertHasRegion(HighlightRegionType.LOCAL_VARIABLE_REFERENCE, 'vvv = 1;'); | |
| 929 }); | |
| 930 } | 864 } |
| 931 | 865 |
| 932 test_METHOD() { | 866 test_METHOD() async { |
| 933 addTestFile(''' | 867 addTestFile(''' |
| 934 class A { | 868 class A { |
| 935 aaa() {} | 869 aaa() {} |
| 936 static bbb() {} | 870 static bbb() {} |
| 937 } | 871 } |
| 938 main(A a) { | 872 main(A a) { |
| 939 a.aaa(); | 873 a.aaa(); |
| 940 a.aaa; | 874 a.aaa; |
| 941 A.bbb(); | 875 A.bbb(); |
| 942 A.bbb; | 876 A.bbb; |
| 943 } | 877 } |
| 944 '''); | 878 '''); |
| 945 return prepareHighlights().then((_) { | 879 await prepareHighlights(); |
| 946 assertHasRegion( | 880 assertHasRegion( |
| 947 HighlightRegionType.INSTANCE_METHOD_DECLARATION, 'aaa() {}'); | 881 HighlightRegionType.INSTANCE_METHOD_DECLARATION, 'aaa() {}'); |
| 948 assertHasRegion( | 882 assertHasRegion(HighlightRegionType.STATIC_METHOD_DECLARATION, 'bbb() {}'); |
| 949 HighlightRegionType.STATIC_METHOD_DECLARATION, 'bbb() {}'); | 883 assertHasRegion(HighlightRegionType.INSTANCE_METHOD_REFERENCE, 'aaa();'); |
| 950 assertHasRegion(HighlightRegionType.INSTANCE_METHOD_REFERENCE, 'aaa();'); | 884 assertHasRegion(HighlightRegionType.INSTANCE_METHOD_REFERENCE, 'aaa;'); |
| 951 assertHasRegion(HighlightRegionType.INSTANCE_METHOD_REFERENCE, 'aaa;'); | 885 assertHasRegion(HighlightRegionType.STATIC_METHOD_REFERENCE, 'bbb();'); |
| 952 assertHasRegion(HighlightRegionType.STATIC_METHOD_REFERENCE, 'bbb();'); | 886 assertHasRegion(HighlightRegionType.STATIC_METHOD_REFERENCE, 'bbb;'); |
| 953 assertHasRegion(HighlightRegionType.STATIC_METHOD_REFERENCE, 'bbb;'); | |
| 954 }); | |
| 955 } | 887 } |
| 956 | 888 |
| 957 test_METHOD_bestType() { | 889 test_METHOD_bestType() async { |
| 958 addTestFile(''' | 890 addTestFile(''' |
| 959 main(p) { | 891 main(p) { |
| 960 if (p is List) { | 892 if (p is List) { |
| 961 p.add(null); | 893 p.add(null); |
| 962 } | 894 } |
| 963 } | 895 } |
| 964 '''); | 896 '''); |
| 965 return prepareHighlights().then((_) { | 897 await prepareHighlights(); |
| 966 assertHasRegion( | 898 assertHasRegion(HighlightRegionType.INSTANCE_METHOD_REFERENCE, 'add(null)'); |
| 967 HighlightRegionType.INSTANCE_METHOD_REFERENCE, 'add(null)'); | |
| 968 }); | |
| 969 } | 899 } |
| 970 | 900 |
| 971 test_PARAMETER() { | 901 test_PARAMETER() async { |
| 972 addTestFile(''' | 902 addTestFile(''' |
| 973 main(int p) { | 903 main(int p) { |
| 974 p; | 904 p; |
| 975 p = 42; | 905 p = 42; |
| 976 } | 906 } |
| 977 '''); | 907 '''); |
| 978 return prepareHighlights().then((_) { | 908 await prepareHighlights(); |
| 979 assertHasRegion(HighlightRegionType.PARAMETER_DECLARATION, 'p) {'); | 909 assertHasRegion(HighlightRegionType.PARAMETER_DECLARATION, 'p) {'); |
| 980 assertHasRegion(HighlightRegionType.PARAMETER_REFERENCE, 'p;'); | 910 assertHasRegion(HighlightRegionType.PARAMETER_REFERENCE, 'p;'); |
| 981 assertHasRegion(HighlightRegionType.PARAMETER_REFERENCE, 'p = 42'); | 911 assertHasRegion(HighlightRegionType.PARAMETER_REFERENCE, 'p = 42'); |
| 982 }); | |
| 983 } | 912 } |
| 984 | 913 |
| 985 test_SETTER_DECLARATION() { | 914 test_SETTER_DECLARATION() async { |
| 986 addTestFile(''' | 915 addTestFile(''' |
| 987 set aaa(x) {} | 916 set aaa(x) {} |
| 988 class A { | 917 class A { |
| 989 set bbb(x) {} | 918 set bbb(x) {} |
| 990 static set ccc(x) {} | 919 static set ccc(x) {} |
| 991 } | 920 } |
| 992 main(A a) { | 921 main(A a) { |
| 993 aaa = 1; | 922 aaa = 1; |
| 994 a.bbb = 2; | 923 a.bbb = 2; |
| 995 A.ccc = 3; | 924 A.ccc = 3; |
| 996 } | 925 } |
| 997 '''); | 926 '''); |
| 998 return prepareHighlights().then((_) { | 927 await prepareHighlights(); |
| 999 assertHasRegion( | 928 assertHasRegion(HighlightRegionType.TOP_LEVEL_SETTER_DECLARATION, 'aaa(x)'); |
| 1000 HighlightRegionType.TOP_LEVEL_SETTER_DECLARATION, 'aaa(x)'); | 929 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_DECLARATION, 'bbb(x)'); |
| 1001 assertHasRegion( | 930 assertHasRegion(HighlightRegionType.STATIC_SETTER_DECLARATION, 'ccc(x)'); |
| 1002 HighlightRegionType.INSTANCE_SETTER_DECLARATION, 'bbb(x)'); | 931 assertHasRegion(HighlightRegionType.TOP_LEVEL_SETTER_REFERENCE, 'aaa = 1'); |
| 1003 assertHasRegion(HighlightRegionType.STATIC_SETTER_DECLARATION, 'ccc(x)'); | 932 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'bbb = 2'); |
| 1004 assertHasRegion( | 933 assertHasRegion(HighlightRegionType.STATIC_SETTER_REFERENCE, 'ccc = 3'); |
| 1005 HighlightRegionType.TOP_LEVEL_SETTER_REFERENCE, 'aaa = 1'); | |
| 1006 assertHasRegion(HighlightRegionType.INSTANCE_SETTER_REFERENCE, 'bbb = 2'); | |
| 1007 assertHasRegion(HighlightRegionType.STATIC_SETTER_REFERENCE, 'ccc = 3'); | |
| 1008 }); | |
| 1009 } | 934 } |
| 1010 | 935 |
| 1011 test_STATIC_FIELD() { | 936 test_STATIC_FIELD() async { |
| 1012 addTestFile(''' | 937 addTestFile(''' |
| 1013 class A { | 938 class A { |
| 1014 static aaa = 1; | 939 static aaa = 1; |
| 1015 static get bbb => null; | 940 static get bbb => null; |
| 1016 static set ccc(x) {} | 941 static set ccc(x) {} |
| 1017 } | 942 } |
| 1018 main() { | 943 main() { |
| 1019 A.aaa = 2; | 944 A.aaa = 2; |
| 1020 A.bbb; | 945 A.bbb; |
| 1021 A.ccc = 3; | 946 A.ccc = 3; |
| 1022 } | 947 } |
| 1023 '''); | 948 '''); |
| 1024 return prepareHighlights().then((_) { | 949 await prepareHighlights(); |
| 1025 assertHasRegion(HighlightRegionType.STATIC_FIELD_DECLARATION, 'aaa = 1'); | 950 assertHasRegion(HighlightRegionType.STATIC_FIELD_DECLARATION, 'aaa = 1'); |
| 1026 assertHasRegion(HighlightRegionType.STATIC_SETTER_REFERENCE, 'aaa = 2'); | 951 assertHasRegion(HighlightRegionType.STATIC_SETTER_REFERENCE, 'aaa = 2'); |
| 1027 assertHasRegion(HighlightRegionType.STATIC_GETTER_REFERENCE, 'bbb;'); | 952 assertHasRegion(HighlightRegionType.STATIC_GETTER_REFERENCE, 'bbb;'); |
| 1028 assertHasRegion(HighlightRegionType.STATIC_SETTER_REFERENCE, 'ccc = 3'); | 953 assertHasRegion(HighlightRegionType.STATIC_SETTER_REFERENCE, 'ccc = 3'); |
| 1029 }); | |
| 1030 } | 954 } |
| 1031 | 955 |
| 1032 test_TOP_LEVEL_FUNCTION() { | 956 test_TOP_LEVEL_FUNCTION() async { |
| 1033 addTestFile(''' | 957 addTestFile(''' |
| 1034 fff(p) {} | 958 fff(p) {} |
| 1035 main() { | 959 main() { |
| 1036 fff(42); | 960 fff(42); |
| 1037 } | 961 } |
| 1038 '''); | 962 '''); |
| 1039 return prepareHighlights().then((_) { | 963 await prepareHighlights(); |
| 1040 assertHasRegion( | 964 assertHasRegion( |
| 1041 HighlightRegionType.TOP_LEVEL_FUNCTION_DECLARATION, 'fff(p) {}'); | 965 HighlightRegionType.TOP_LEVEL_FUNCTION_DECLARATION, 'fff(p) {}'); |
| 1042 assertHasRegion( | 966 assertHasRegion( |
| 1043 HighlightRegionType.TOP_LEVEL_FUNCTION_REFERENCE, 'fff(42)'); | 967 HighlightRegionType.TOP_LEVEL_FUNCTION_REFERENCE, 'fff(42)'); |
| 1044 }); | |
| 1045 } | 968 } |
| 1046 | 969 |
| 1047 test_TOP_LEVEL_VARIABLE() { | 970 test_TOP_LEVEL_VARIABLE() async { |
| 1048 addTestFile(''' | 971 addTestFile(''' |
| 1049 const V1 = 1; | 972 const V1 = 1; |
| 1050 var V2 = 2; | 973 var V2 = 2; |
| 1051 @V1 // annotation | 974 @V1 // annotation |
| 1052 main() { | 975 main() { |
| 1053 print(V1); | 976 print(V1); |
| 1054 V2 = 3; | 977 V2 = 3; |
| 1055 } | 978 } |
| 1056 '''); | 979 '''); |
| 1057 return prepareHighlights().then((_) { | 980 await prepareHighlights(); |
| 1058 assertHasRegion( | 981 assertHasRegion( |
| 1059 HighlightRegionType.TOP_LEVEL_VARIABLE_DECLARATION, 'V1 = 1'); | 982 HighlightRegionType.TOP_LEVEL_VARIABLE_DECLARATION, 'V1 = 1'); |
| 1060 assertHasRegion( | 983 assertHasRegion( |
| 1061 HighlightRegionType.TOP_LEVEL_VARIABLE_DECLARATION, 'V2 = 2'); | 984 HighlightRegionType.TOP_LEVEL_VARIABLE_DECLARATION, 'V2 = 2'); |
| 1062 assertHasRegion( | 985 assertHasRegion( |
| 1063 HighlightRegionType.TOP_LEVEL_GETTER_REFERENCE, 'V1 // annotation'); | 986 HighlightRegionType.TOP_LEVEL_GETTER_REFERENCE, 'V1 // annotation'); |
| 1064 assertHasRegion(HighlightRegionType.TOP_LEVEL_GETTER_REFERENCE, 'V1);'); | 987 assertHasRegion(HighlightRegionType.TOP_LEVEL_GETTER_REFERENCE, 'V1);'); |
| 1065 assertHasRegion(HighlightRegionType.TOP_LEVEL_SETTER_REFERENCE, 'V2 = 3'); | 988 assertHasRegion(HighlightRegionType.TOP_LEVEL_SETTER_REFERENCE, 'V2 = 3'); |
| 1066 }); | |
| 1067 } | 989 } |
| 1068 | 990 |
| 1069 test_TYPE_NAME_DYNAMIC() { | 991 test_TYPE_NAME_DYNAMIC() async { |
| 1070 addTestFile(''' | 992 addTestFile(''' |
| 1071 dynamic main() { | 993 dynamic main() { |
| 1072 dynamic = 42; | 994 dynamic = 42; |
| 1073 } | 995 } |
| 1074 '''); | 996 '''); |
| 1075 return prepareHighlights().then((_) { | 997 await prepareHighlights(); |
| 1076 assertHasRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic main()'); | 998 assertHasRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic main()'); |
| 1077 assertNoRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'dynamic main()'); | 999 assertNoRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'dynamic main()'); |
| 1078 assertNoRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic = 42'); | 1000 assertNoRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic = 42'); |
| 1079 }); | |
| 1080 } | 1001 } |
| 1081 | 1002 |
| 1082 test_TYPE_PARAMETER() { | 1003 test_TYPE_PARAMETER() async { |
| 1083 addTestFile(''' | 1004 addTestFile(''' |
| 1084 class A<T> { | 1005 class A<T> { |
| 1085 T fff; | 1006 T fff; |
| 1086 T mmm(T p) => null; | 1007 T mmm(T p) => null; |
| 1087 } | 1008 } |
| 1088 '''); | 1009 '''); |
| 1089 return prepareHighlights().then((_) { | 1010 await prepareHighlights(); |
| 1090 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T> {'); | 1011 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T> {'); |
| 1091 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T fff;'); | 1012 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T fff;'); |
| 1092 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T mmm('); | 1013 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T mmm('); |
| 1093 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T p)'); | 1014 assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T p)'); |
| 1094 }); | |
| 1095 } | 1015 } |
| 1096 | 1016 |
| 1097 test_UNRESOLVED_INSTANCE_MEMBER_REFERENCE_dynamicVarTarget() { | 1017 test_UNRESOLVED_INSTANCE_MEMBER_REFERENCE_dynamicVarTarget() async { |
| 1098 addTestFile(''' | 1018 addTestFile(''' |
| 1099 main(p) { | 1019 main(p) { |
| 1100 p.aaa; | 1020 p.aaa; |
| 1101 p.aaa++; | 1021 p.aaa++; |
| 1102 p.aaa += 0; | 1022 p.aaa += 0; |
| 1103 ++p.aaa; // ++ | 1023 ++p.aaa; // ++ |
| 1104 p.aaa = 0; | 1024 p.aaa = 0; |
| 1105 p.bbb(0); | 1025 p.bbb(0); |
| 1106 ''.length.ccc().ddd(); | 1026 ''.length.ccc().ddd(); |
| 1107 } | 1027 } |
| 1108 '''); | 1028 '''); |
| 1109 return prepareHighlights().then((_) { | 1029 await prepareHighlights(); |
| 1110 HighlightRegionType type = | 1030 HighlightRegionType type = |
| 1111 HighlightRegionType.UNRESOLVED_INSTANCE_MEMBER_REFERENCE; | 1031 HighlightRegionType.UNRESOLVED_INSTANCE_MEMBER_REFERENCE; |
| 1112 assertHasRegion(type, 'aaa'); | 1032 assertHasRegion(type, 'aaa'); |
| 1113 assertHasRegion(type, 'aaa++'); | 1033 assertHasRegion(type, 'aaa++'); |
| 1114 assertHasRegion(type, 'aaa += 0'); | 1034 assertHasRegion(type, 'aaa += 0'); |
| 1115 assertHasRegion(type, 'aaa; // ++'); | 1035 assertHasRegion(type, 'aaa; // ++'); |
| 1116 assertHasRegion(type, 'aaa ='); | 1036 assertHasRegion(type, 'aaa ='); |
| 1117 assertHasRegion(type, 'bbb('); | 1037 assertHasRegion(type, 'bbb('); |
| 1118 assertHasRegion(type, 'ddd()'); | 1038 assertHasRegion(type, 'ddd()'); |
| 1119 }); | |
| 1120 } | 1039 } |
| 1121 | 1040 |
| 1122 test_UNRESOLVED_INSTANCE_MEMBER_REFERENCE_nonDynamicTarget() { | 1041 test_UNRESOLVED_INSTANCE_MEMBER_REFERENCE_nonDynamicTarget() async { |
| 1123 addTestFile(''' | 1042 addTestFile(''' |
| 1124 import 'dart:math' as math; | 1043 import 'dart:math' as math; |
| 1125 main(String str) { | 1044 main(String str) { |
| 1126 new Object().aaa(); | 1045 new Object().aaa(); |
| 1127 math.bbb(); | 1046 math.bbb(); |
| 1128 str.ccc(); | 1047 str.ccc(); |
| 1129 } | 1048 } |
| 1130 class A { | 1049 class A { |
| 1131 m() { | 1050 m() { |
| 1132 unresolved(1); | 1051 unresolved(1); |
| 1133 this.unresolved(2); | 1052 this.unresolved(2); |
| 1134 super.unresolved(3); | 1053 super.unresolved(3); |
| 1135 } | 1054 } |
| 1136 } | 1055 } |
| 1137 '''); | 1056 '''); |
| 1138 return prepareHighlights().then((_) { | 1057 await prepareHighlights(); |
| 1139 HighlightRegionType type = HighlightRegionType.IDENTIFIER_DEFAULT; | 1058 HighlightRegionType type = HighlightRegionType.IDENTIFIER_DEFAULT; |
| 1140 assertHasRegion(type, 'aaa()'); | 1059 assertHasRegion(type, 'aaa()'); |
| 1141 assertHasRegion(type, 'bbb()'); | 1060 assertHasRegion(type, 'bbb()'); |
| 1142 assertHasRegion(type, 'ccc()'); | 1061 assertHasRegion(type, 'ccc()'); |
| 1143 assertHasRegion(type, 'unresolved(1)'); | 1062 assertHasRegion(type, 'unresolved(1)'); |
| 1144 assertHasRegion(type, 'unresolved(2)'); | 1063 assertHasRegion(type, 'unresolved(2)'); |
| 1145 assertHasRegion(type, 'unresolved(3)'); | 1064 assertHasRegion(type, 'unresolved(3)'); |
| 1146 }); | |
| 1147 } | 1065 } |
| 1148 | 1066 |
| 1149 void _addLibraryForTestPart() { | 1067 void _addLibraryForTestPart() { |
| 1150 addFile( | 1068 addFile( |
| 1151 '$testFolder/my_lib.dart', | 1069 '$testFolder/my_lib.dart', |
| 1152 ''' | 1070 ''' |
| 1153 library lib; | 1071 library lib; |
| 1154 part 'test.dart'; | 1072 part 'test.dart'; |
| 1155 '''); | 1073 '''); |
| 1156 } | 1074 } |
| 1157 } | 1075 } |
| 1158 | 1076 |
| 1159 @reflectiveTest | 1077 @reflectiveTest |
| 1160 class HighlightTypeTest { | 1078 class HighlightTypeTest { |
| 1161 void test_constructor() { | 1079 void test_constructor() { |
| 1162 expect(HighlightRegionType.CLASS, | 1080 expect(HighlightRegionType.CLASS, |
| 1163 new HighlightRegionType(HighlightRegionType.CLASS.name)); | 1081 new HighlightRegionType(HighlightRegionType.CLASS.name)); |
| 1164 } | 1082 } |
| 1165 | 1083 |
| 1166 void test_toString() { | 1084 void test_toString() { |
| 1167 expect(HighlightRegionType.CLASS.toString(), 'HighlightRegionType.CLASS'); | 1085 expect(HighlightRegionType.CLASS.toString(), 'HighlightRegionType.CLASS'); |
| 1168 } | 1086 } |
| 1169 | 1087 |
| 1170 void test_valueOf_unknown() { | 1088 void test_valueOf_unknown() { |
| 1171 expect(() { | 1089 expect(() { |
| 1172 new HighlightRegionType('no-such-type'); | 1090 new HighlightRegionType('no-such-type'); |
| 1173 }, throws); | 1091 }, throws); |
| 1174 } | 1092 } |
| 1175 } | 1093 } |
| OLD | NEW |