Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(795)

Unified Diff: pkg/analyzer/test/generated/element_test.dart

Issue 1084643002: Issue 23181. Fix for ParameterElement.node. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/generated/element_handle.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/generated/element_test.dart
diff --git a/pkg/analyzer/test/generated/element_test.dart b/pkg/analyzer/test/generated/element_test.dart
index 71561612fefb6bce45f534d8b74880aa5e26cd28..e8069dcc5ab6b4914ee87f32bb891f07e2b35277 100644
--- a/pkg/analyzer/test/generated/element_test.dart
+++ b/pkg/analyzer/test/generated/element_test.dart
@@ -37,6 +37,7 @@ main() {
runReflectiveTests(HtmlElementImplTest);
runReflectiveTests(LibraryElementImplTest);
runReflectiveTests(MultiplyDefinedElementImplTest);
+ runReflectiveTests(ParameterElementImplTest);
}
@reflectiveTest
@@ -2634,8 +2635,7 @@ class InterfaceTypeImplTest extends EngineTestCase {
void test_isAssignableTo_void() {
InterfaceTypeImpl intType = _typeProvider.intType;
- expect(
- VoidTypeImpl.instance.isAssignableTo(intType), isFalse);
+ expect(VoidTypeImpl.instance.isAssignableTo(intType), isFalse);
}
void test_isDirectSupertypeOf_extends() {
@@ -3624,6 +3624,90 @@ class MultiplyDefinedElementImplTest extends EngineTestCase {
}
@reflectiveTest
+class ParameterElementImplTest extends EngineTestCase {
+ void test_node_DefaultFormalParameter() {
+ AnalysisContextHelper contextHelper = new AnalysisContextHelper();
+ AnalysisContext context = contextHelper.context;
+ Source source = contextHelper.addSource("/test.dart", r'''
+main([int p = 42]) {
+}''');
+ // prepare CompilationUnitElement
+ LibraryElement libraryElement = context.computeLibraryElement(source);
+ CompilationUnitElement unitElement = libraryElement.definingCompilationUnit;
+ // p
+ {
+ ParameterElement element = unitElement.functions[0].parameters[0];
+ DefaultFormalParameter node = element.node;
+ expect(node, isNotNull);
+ expect(node.identifier.name, 'p');
+ expect(node.element, same(element));
+ }
+ }
+
+ void test_node_FieldFormalParameter() {
+ AnalysisContextHelper contextHelper = new AnalysisContextHelper();
+ AnalysisContext context = contextHelper.context;
+ Source source = contextHelper.addSource("/test.dart", r'''
+class A {
+ int p;
+ A(this.p) {
+ }
+}''');
+ // prepare CompilationUnitElement
+ LibraryElement libraryElement = context.computeLibraryElement(source);
+ CompilationUnitElement unitElement = libraryElement.definingCompilationUnit;
+ // p
+ {
+ ClassElement classA = unitElement.types[0];
+ ConstructorElement constructorA = classA.constructors[0];
+ FieldFormalParameterElement element = constructorA.parameters[0];
+ FieldFormalParameter node = element.node;
+ expect(node, isNotNull);
+ expect(node.identifier.name, 'p');
+ expect(node.element, same(element));
+ }
+ }
+
+ void test_node_FunctionTypedFormalParameter() {
+ AnalysisContextHelper contextHelper = new AnalysisContextHelper();
+ AnalysisContext context = contextHelper.context;
+ Source source = contextHelper.addSource("/test.dart", r'''
+main(p(int a, int b)) {
+}''');
+ // prepare CompilationUnitElement
+ LibraryElement libraryElement = context.computeLibraryElement(source);
+ CompilationUnitElement unitElement = libraryElement.definingCompilationUnit;
+ // p
+ {
+ ParameterElement element = unitElement.functions[0].parameters[0];
+ FunctionTypedFormalParameter node = element.node;
+ expect(node, isNotNull);
+ expect(node.identifier.name, 'p');
+ expect(node.element, same(element));
+ }
+ }
+
+ void test_node_SimpleFormalParameter() {
+ AnalysisContextHelper contextHelper = new AnalysisContextHelper();
+ AnalysisContext context = contextHelper.context;
+ Source source = contextHelper.addSource("/test.dart", r'''
+main(int p) {
+}''');
+ // prepare CompilationUnitElement
+ LibraryElement libraryElement = context.computeLibraryElement(source);
+ CompilationUnitElement unitElement = libraryElement.definingCompilationUnit;
+ // p
+ {
+ ParameterElement element = unitElement.functions[0].parameters[0];
+ SimpleFormalParameter node = element.node;
+ expect(node, isNotNull);
+ expect(node.identifier.name, 'p');
+ expect(node.element, same(element));
+ }
+ }
+}
+
+@reflectiveTest
class TypeParameterTypeImplTest extends EngineTestCase {
void test_creation() {
expect(new TypeParameterTypeImpl(
« no previous file with comments | « pkg/analyzer/lib/src/generated/element_handle.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698