| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 import "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
| 6 import "package:async_helper/async_helper.dart"; | 6 import "package:async_helper/async_helper.dart"; |
| 7 import 'package:compiler/src/mirrors/source_mirrors.dart'; | 7 import 'package:compiler/src/mirrors/source_mirrors.dart'; |
| 8 import 'package:compiler/src/mirrors/mirrors_util.dart'; | 8 import 'package:compiler/src/mirrors/mirrors_util.dart'; |
| 9 import 'package:compiler/src/mirrors/analyze.dart'; | 9 import 'package:compiler/src/mirrors/analyze.dart'; |
| 10 import 'package:compiler/src/filenames.dart' | 10 import 'package:compiler/src/filenames.dart' |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 var fooMa = fooM.parameters[0]; | 162 var fooMa = fooM.parameters[0]; |
| 163 Expect.isNotNull(fooMa); | 163 Expect.isNotNull(fooMa); |
| 164 Expect.isTrue(fooMa is ParameterMirror); | 164 Expect.isTrue(fooMa is ParameterMirror); |
| 165 | 165 |
| 166 ////////////////////////////////////////////////////////////////////////////// | 166 ////////////////////////////////////////////////////////////////////////////// |
| 167 // Metadata tests | 167 // Metadata tests |
| 168 ////////////////////////////////////////////////////////////////////////////// | 168 ////////////////////////////////////////////////////////////////////////////// |
| 169 | 169 |
| 170 var metadataList = fooClass.metadata; | 170 var metadataList = fooClass.metadata; |
| 171 Expect.isNotNull(metadataList); | 171 Expect.isNotNull(metadataList); |
| 172 Expect.equals(16, metadataList.length); | 172 Expect.equals(14, metadataList.length); |
| 173 var metadataListIndex = 0; | 173 var metadataListIndex = 0; |
| 174 var metadata; | 174 var metadata; |
| 175 | 175 |
| 176 var dartMirrorsLibrary = system.libraries[DART_MIRRORS_URI]; | 176 var dartMirrorsLibrary = system.libraries[DART_MIRRORS_URI]; |
| 177 Expect.isNotNull(dartMirrorsLibrary); | 177 Expect.isNotNull(dartMirrorsLibrary); |
| 178 var commentType = dartMirrorsLibrary.declarations[#Comment]; | 178 var commentType = dartMirrorsLibrary.declarations[#Comment]; |
| 179 Expect.isNotNull(commentType); | 179 Expect.isNotNull(commentType); |
| 180 | 180 |
| 181 // /// Singleline doc comment. | 181 // /// Singleline doc comment. |
| 182 metadata = metadataList[metadataListIndex++]; | 182 metadata = metadataList[metadataListIndex++]; |
| 183 Expect.isTrue(metadata is InstanceMirror); | 183 Expect.isTrue(metadata is InstanceMirror); |
| 184 Expect.isFalse(metadata.hasReflectee); | 184 Expect.isFalse(metadata.hasReflectee); |
| 185 Expect.throws(() => metadata.reflectee, (_) => true); | 185 Expect.throws(() => metadata.reflectee, (_) => true); |
| 186 Expect.isTrue(metadata is CommentInstanceMirror, | 186 Expect.isTrue(metadata is CommentInstanceMirror, |
| 187 "Unexpected metadata: $metadata"); | 187 "Unexpected metadata: $metadata"); |
| 188 Expect.equals(commentType.originalDeclaration, metadata.type); | 188 Expect.equals(commentType.originalDeclaration, metadata.type); |
| 189 Expect.isTrue(metadata.isDocComment); | 189 Expect.isTrue(metadata.isDocComment); |
| 190 Expect.stringEquals( | 190 Expect.stringEquals( |
| 191 "/// Singleline doc comment.", metadata.text); | 191 "/// Singleline doc comment.", metadata.text); |
| 192 Expect.stringEquals( | 192 Expect.stringEquals( |
| 193 "Singleline doc comment.", metadata.trimmedText); | 193 "Singleline doc comment.", metadata.trimmedText); |
| 194 | 194 |
| 195 // @Metadata | 195 // @Metadata(null) |
| 196 metadata = metadataList[metadataListIndex++]; | 196 metadata = metadataList[metadataListIndex++]; |
| 197 var metadataType = metadata.type; |
| 197 Expect.isTrue(metadata is InstanceMirror); | 198 Expect.isTrue(metadata is InstanceMirror); |
| 198 Expect.isFalse(metadata.hasReflectee); | 199 Expect.isFalse(metadata.hasReflectee); |
| 199 Expect.throws(() => metadata.reflectee, (_) => true); | 200 Expect.throws(() => metadata.reflectee, (_) => true); |
| 200 Expect.isTrue(metadata is TypeInstanceMirror); | 201 Expect.isTrue(metadataType.isOriginalDeclaration); |
| 201 var metadataType = metadata.representedType; | 202 InstanceMirror data = metadata.getField(#data); |
| 202 Expect.isNotNull(metadataType); | 203 Expect.isNotNull(data); |
| 203 Expect.equals(#Metadata, metadataType.simpleName); | 204 Expect.isTrue(data.hasReflectee); |
| 204 | 205 Expect.isNull(data.reflectee); |
| 205 // // This is intentionally the type literal. | |
| 206 metadata = metadataList[metadataListIndex++]; | |
| 207 Expect.isTrue(metadata is InstanceMirror); | |
| 208 Expect.isFalse(metadata.hasReflectee); | |
| 209 Expect.throws(() => metadata.reflectee, (_) => true); | |
| 210 Expect.isTrue(metadata is CommentInstanceMirror); | |
| 211 Expect.equals(commentType.originalDeclaration, metadata.type); | |
| 212 Expect.isFalse(metadata.isDocComment); | |
| 213 Expect.stringEquals( | |
| 214 "// This is intentionally the type literal.", metadata.text); | |
| 215 Expect.stringEquals( | |
| 216 "This is intentionally the type literal.", metadata.trimmedText); | |
| 217 | 206 |
| 218 // Singleline comment 1. | 207 // Singleline comment 1. |
| 219 metadata = metadataList[metadataListIndex++]; | 208 metadata = metadataList[metadataListIndex++]; |
| 220 Expect.isTrue(metadata is InstanceMirror); | 209 Expect.isTrue(metadata is InstanceMirror); |
| 221 Expect.isFalse(metadata.hasReflectee); | 210 Expect.isFalse(metadata.hasReflectee); |
| 222 Expect.throws(() => metadata.reflectee, (_) => true); | 211 Expect.throws(() => metadata.reflectee, (_) => true); |
| 223 Expect.isTrue(metadata is CommentInstanceMirror); | 212 Expect.isTrue(metadata is CommentInstanceMirror); |
| 224 Expect.equals(commentType.originalDeclaration, metadata.type); | 213 Expect.equals(commentType.originalDeclaration, metadata.type); |
| 225 Expect.isFalse(metadata.isDocComment); | 214 Expect.isFalse(metadata.isDocComment); |
| 226 Expect.stringEquals( | 215 Expect.stringEquals( |
| 227 "// Singleline comment 1.", metadata.text); | 216 "// Singleline comment 1.", metadata.text); |
| 228 Expect.stringEquals( | 217 Expect.stringEquals( |
| 229 "Singleline comment 1.", metadata.trimmedText); | 218 "Singleline comment 1.", metadata.trimmedText); |
| 230 | 219 |
| 231 // Singleline comment 2. | 220 // Singleline comment 2. |
| 232 metadata = metadataList[metadataListIndex++]; | 221 metadata = metadataList[metadataListIndex++]; |
| 233 Expect.isTrue(metadata is InstanceMirror); | 222 Expect.isTrue(metadata is InstanceMirror); |
| 234 Expect.isFalse(metadata.hasReflectee); | 223 Expect.isFalse(metadata.hasReflectee); |
| 235 Expect.throws(() => metadata.reflectee, (_) => true); | 224 Expect.throws(() => metadata.reflectee, (_) => true); |
| 236 Expect.isTrue(metadata is CommentInstanceMirror); | 225 Expect.isTrue(metadata is CommentInstanceMirror); |
| 237 Expect.equals(commentType.originalDeclaration, metadata.type); | 226 Expect.equals(commentType.originalDeclaration, metadata.type); |
| 238 Expect.isFalse(metadata.isDocComment); | 227 Expect.isFalse(metadata.isDocComment); |
| 239 Expect.stringEquals( | 228 Expect.stringEquals( |
| 240 "// Singleline comment 2.", metadata.text); | 229 "// Singleline comment 2.", metadata.text); |
| 241 Expect.stringEquals( | 230 Expect.stringEquals( |
| 242 "Singleline comment 2.", metadata.trimmedText); | 231 "Singleline comment 2.", metadata.trimmedText); |
| 243 | 232 |
| 244 // @Metadata(null) | |
| 245 metadata = metadataList[metadataListIndex++]; | |
| 246 Expect.isTrue(metadata is InstanceMirror); | |
| 247 Expect.isFalse(metadata.hasReflectee); | |
| 248 Expect.throws(() => metadata.reflectee, (_) => true); | |
| 249 Expect.equals(metadataType.originalDeclaration, metadata.type); | |
| 250 InstanceMirror data = metadata.getField(#data); | |
| 251 Expect.isNotNull(data); | |
| 252 Expect.isTrue(data.hasReflectee); | |
| 253 Expect.isNull(data.reflectee); | |
| 254 | |
| 255 // @Metadata(true) | 233 // @Metadata(true) |
| 256 metadata = metadataList[metadataListIndex++]; | 234 metadata = metadataList[metadataListIndex++]; |
| 257 Expect.isTrue(metadata is InstanceMirror); | 235 Expect.isTrue(metadata is InstanceMirror); |
| 258 Expect.isFalse(metadata.hasReflectee); | 236 Expect.isFalse(metadata.hasReflectee); |
| 259 Expect.throws(() => metadata.reflectee, (_) => true); | 237 Expect.throws(() => metadata.reflectee, (_) => true); |
| 260 Expect.equals(metadataType.originalDeclaration, metadata.type); | 238 Expect.equals(metadataType.originalDeclaration, metadata.type); |
| 261 data = metadata.getField(#data); | 239 data = metadata.getField(#data); |
| 262 Expect.isNotNull(data); | 240 Expect.isNotNull(data); |
| 263 Expect.isTrue(data.hasReflectee); | 241 Expect.isTrue(data.hasReflectee); |
| 264 Expect.isTrue(data.reflectee); | 242 Expect.isTrue(data.reflectee); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 ////////////////////////////////////////////////////////////////////////////// | 369 ////////////////////////////////////////////////////////////////////////////// |
| 392 // Location test | 370 // Location test |
| 393 ////////////////////////////////////////////////////////////////////////////// | 371 ////////////////////////////////////////////////////////////////////////////// |
| 394 | 372 |
| 395 var fooClassLocation = fooClass.location; | 373 var fooClassLocation = fooClass.location; |
| 396 Expect.isNotNull(fooClassLocation); | 374 Expect.isNotNull(fooClassLocation); |
| 397 // Expect the location to start with the first metadata, not including the | 375 // Expect the location to start with the first metadata, not including the |
| 398 // leading comment. | 376 // leading comment. |
| 399 Expect.equals(376, fooClassLocation.offset, "Unexpected offset"); | 377 Expect.equals(376, fooClassLocation.offset, "Unexpected offset"); |
| 400 // Expect the location to end with the class body. | 378 // Expect the location to end with the class body. |
| 401 Expect.equals(351, fooClassLocation.length, "Unexpected length"); | 379 Expect.equals(298, fooClassLocation.length, "Unexpected length"); |
| 402 Expect.equals(18, fooClassLocation.line, "Unexpected line"); | 380 Expect.equals(18, fooClassLocation.line, "Unexpected line"); |
| 403 Expect.equals(1, fooClassLocation.column, "Unexpected column"); | 381 Expect.equals(1, fooClassLocation.column, "Unexpected column"); |
| 404 | 382 |
| 405 } | 383 } |
| 406 | 384 |
| 407 // Testing abstract class Bar: | 385 // Testing abstract class Bar: |
| 408 // | 386 // |
| 409 // abstract class Bar<E> { | 387 // abstract class Bar<E> { |
| 410 // | 388 // |
| 411 // } | 389 // } |
| (...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 987 Expect.isTrue(privateFactoryConstructor.isPrivate); | 965 Expect.isTrue(privateFactoryConstructor.isPrivate); |
| 988 Expect.isFalse(privateFactoryConstructor.isConstConstructor); | 966 Expect.isFalse(privateFactoryConstructor.isConstConstructor); |
| 989 Expect.isFalse(privateFactoryConstructor.isRedirectingConstructor); | 967 Expect.isFalse(privateFactoryConstructor.isRedirectingConstructor); |
| 990 Expect.isFalse(privateFactoryConstructor.isGenerativeConstructor); | 968 Expect.isFalse(privateFactoryConstructor.isGenerativeConstructor); |
| 991 Expect.isTrue(privateFactoryConstructor.isFactoryConstructor); | 969 Expect.isTrue(privateFactoryConstructor.isFactoryConstructor); |
| 992 | 970 |
| 993 var metadata = privateClass.metadata; | 971 var metadata = privateClass.metadata; |
| 994 Expect.isNotNull(metadata); | 972 Expect.isNotNull(metadata); |
| 995 Expect.equals(0, metadata.length); | 973 Expect.equals(0, metadata.length); |
| 996 } | 974 } |
| OLD | NEW |