| 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 engine.all_the_rest_test; |     5 library engine.all_the_rest_test; | 
|     6  |     6  | 
|     7 import 'package:analyzer/file_system/physical_file_system.dart'; |     7 import 'package:analyzer/file_system/physical_file_system.dart'; | 
|     8 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator; |     8 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator; | 
|     9 import 'package:analyzer/src/generated/constant.dart'; |     9 import 'package:analyzer/src/generated/constant.dart'; | 
|    10 import 'package:analyzer/src/generated/element.dart'; |    10 import 'package:analyzer/src/generated/element.dart'; | 
| (...skipping 4956 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4967         new DirectoryBasedSourceContainer.con1(dir); |  4967         new DirectoryBasedSourceContainer.con1(dir); | 
|  4968     expect(container.contains(source1), isTrue); |  4968     expect(container.contains(source1), isTrue); | 
|  4969     expect(container.contains(source2), isTrue); |  4969     expect(container.contains(source2), isTrue); | 
|  4970     expect(container.contains(source3), isFalse); |  4970     expect(container.contains(source3), isFalse); | 
|  4971   } |  4971   } | 
|  4972 } |  4972 } | 
|  4973  |  4973  | 
|  4974 @reflectiveTest |  4974 @reflectiveTest | 
|  4975 class ElementBuilderTest extends EngineTestCase { |  4975 class ElementBuilderTest extends EngineTestCase { | 
|  4976   void test_visitCatchClause() { |  4976   void test_visitCatchClause() { | 
 |  4977     // } catch (e, s) { | 
|  4977     ElementHolder holder = new ElementHolder(); |  4978     ElementHolder holder = new ElementHolder(); | 
|  4978     ElementBuilder builder = new ElementBuilder(holder); |  4979     ElementBuilder builder = new ElementBuilder(holder); | 
|  4979     String exceptionParameterName = "e"; |  4980     String exceptionParameterName = "e"; | 
|  4980     String stackParameterName = "s"; |  4981     String stackParameterName = "s"; | 
|  4981     CatchClause clause = |  4982     CatchClause clause = | 
|  4982         AstFactory.catchClause2(exceptionParameterName, stackParameterName); |  4983         AstFactory.catchClause2(exceptionParameterName, stackParameterName); | 
|  4983     clause.accept(builder); |  4984     clause.accept(builder); | 
 |  4985  | 
|  4984     List<LocalVariableElement> variables = holder.localVariables; |  4986     List<LocalVariableElement> variables = holder.localVariables; | 
|  4985     expect(variables, hasLength(2)); |  4987     expect(variables, hasLength(2)); | 
|  4986     VariableElement exceptionVariable = variables[0]; |  4988     VariableElement exceptionVariable = variables[0]; | 
|  4987     expect(exceptionVariable, isNotNull); |  4989     expect(exceptionVariable, isNotNull); | 
|  4988     expect(exceptionVariable.name, exceptionParameterName); |  4990     expect(exceptionVariable.name, exceptionParameterName); | 
 |  4991     expect(exceptionVariable.hasImplicitType, isTrue); | 
|  4989     expect(exceptionVariable.isSynthetic, isFalse); |  4992     expect(exceptionVariable.isSynthetic, isFalse); | 
|  4990     expect(exceptionVariable.isConst, isFalse); |  4993     expect(exceptionVariable.isConst, isFalse); | 
|  4991     expect(exceptionVariable.isFinal, isFalse); |  4994     expect(exceptionVariable.isFinal, isFalse); | 
|  4992     expect(exceptionVariable.initializer, isNull); |  4995     expect(exceptionVariable.initializer, isNull); | 
|  4993     VariableElement stackVariable = variables[1]; |  4996     VariableElement stackVariable = variables[1]; | 
|  4994     expect(stackVariable, isNotNull); |  4997     expect(stackVariable, isNotNull); | 
|  4995     expect(stackVariable.name, stackParameterName); |  4998     expect(stackVariable.name, stackParameterName); | 
|  4996     expect(stackVariable.isSynthetic, isFalse); |  4999     expect(stackVariable.isSynthetic, isFalse); | 
|  4997     expect(stackVariable.isConst, isFalse); |  5000     expect(stackVariable.isConst, isFalse); | 
|  4998     expect(stackVariable.isFinal, isFalse); |  5001     expect(stackVariable.isFinal, isFalse); | 
|  4999     expect(stackVariable.initializer, isNull); |  5002     expect(stackVariable.initializer, isNull); | 
|  5000   } |  5003   } | 
|  5001  |  5004  | 
 |  5005   void test_visitCatchClause_withType() { | 
 |  5006     // } on E catch (e) { | 
 |  5007     ElementHolder holder = new ElementHolder(); | 
 |  5008     ElementBuilder builder = new ElementBuilder(holder); | 
 |  5009     String exceptionParameterName = "e"; | 
 |  5010     CatchClause clause = AstFactory.catchClause4( | 
 |  5011         AstFactory.typeName4('E'), exceptionParameterName); | 
 |  5012     clause.accept(builder); | 
 |  5013  | 
 |  5014     List<LocalVariableElement> variables = holder.localVariables; | 
 |  5015     expect(variables, hasLength(1)); | 
 |  5016     VariableElement exceptionVariable = variables[0]; | 
 |  5017     expect(exceptionVariable, isNotNull); | 
 |  5018     expect(exceptionVariable.name, exceptionParameterName); | 
 |  5019     expect(exceptionVariable.hasImplicitType, isFalse); | 
 |  5020   } | 
 |  5021  | 
|  5002   void test_visitClassDeclaration_abstract() { |  5022   void test_visitClassDeclaration_abstract() { | 
|  5003     ElementHolder holder = new ElementHolder(); |  5023     ElementHolder holder = new ElementHolder(); | 
|  5004     ElementBuilder builder = new ElementBuilder(holder); |  5024     ElementBuilder builder = new ElementBuilder(holder); | 
|  5005     String className = "C"; |  5025     String className = "C"; | 
|  5006     ClassDeclaration classDeclaration = AstFactory.classDeclaration( |  5026     ClassDeclaration classDeclaration = AstFactory.classDeclaration( | 
|  5007         Keyword.ABSTRACT, className, null, null, null, null); |  5027         Keyword.ABSTRACT, className, null, null, null, null); | 
|  5008     classDeclaration.accept(builder); |  5028     classDeclaration.accept(builder); | 
|  5009     List<ClassElement> types = holder.types; |  5029     List<ClassElement> types = holder.types; | 
|  5010     expect(types, hasLength(1)); |  5030     expect(types, hasLength(1)); | 
|  5011     ClassElement type = types[0]; |  5031     ClassElement type = types[0]; | 
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5333     expect(constructor.isExternal, isFalse); |  5353     expect(constructor.isExternal, isFalse); | 
|  5334     expect(constructor.isFactory, isFalse); |  5354     expect(constructor.isFactory, isFalse); | 
|  5335     expect(constructor.name, ""); |  5355     expect(constructor.name, ""); | 
|  5336     expect(constructor.functions, hasLength(0)); |  5356     expect(constructor.functions, hasLength(0)); | 
|  5337     expect(constructor.labels, hasLength(0)); |  5357     expect(constructor.labels, hasLength(0)); | 
|  5338     expect(constructor.localVariables, hasLength(0)); |  5358     expect(constructor.localVariables, hasLength(0)); | 
|  5339     expect(constructor.parameters, hasLength(0)); |  5359     expect(constructor.parameters, hasLength(0)); | 
|  5340     expect(constructorDeclaration.element, same(constructor)); |  5360     expect(constructorDeclaration.element, same(constructor)); | 
|  5341   } |  5361   } | 
|  5342  |  5362  | 
 |  5363   void test_visitDeclaredIdentifier_noType() { | 
 |  5364     // var i | 
 |  5365     ElementHolder holder = new ElementHolder(); | 
 |  5366     ElementBuilder builder = new ElementBuilder(holder); | 
 |  5367     var variableName = 'i'; | 
 |  5368     DeclaredIdentifier identifier = | 
 |  5369         AstFactory.declaredIdentifier3(variableName); | 
 |  5370     AstFactory.forEachStatement( | 
 |  5371         identifier, AstFactory.nullLiteral(), AstFactory.emptyStatement()); | 
 |  5372     identifier.accept(builder); | 
 |  5373  | 
 |  5374     List<LocalVariableElement> variables = holder.localVariables; | 
 |  5375     expect(variables, hasLength(1)); | 
 |  5376     LocalVariableElement variable = variables[0]; | 
 |  5377     expect(variable, isNotNull); | 
 |  5378     expect(variable.hasImplicitType, isTrue); | 
 |  5379     expect(variable.isConst, isFalse); | 
 |  5380     expect(variable.isDeprecated, isFalse); | 
 |  5381     expect(variable.isFinal, isFalse); | 
 |  5382     expect(variable.isOverride, isFalse); | 
 |  5383     expect(variable.isPrivate, isFalse); | 
 |  5384     expect(variable.isPublic, isTrue); | 
 |  5385     expect(variable.isSynthetic, isFalse); | 
 |  5386     expect(variable.name, variableName); | 
 |  5387   } | 
 |  5388  | 
 |  5389   void test_visitDeclaredIdentifier_type() { | 
 |  5390     // E i | 
 |  5391     ElementHolder holder = new ElementHolder(); | 
 |  5392     ElementBuilder builder = new ElementBuilder(holder); | 
 |  5393     var variableName = 'i'; | 
 |  5394     DeclaredIdentifier identifier = | 
 |  5395         AstFactory.declaredIdentifier4(AstFactory.typeName4('E'), variableName); | 
 |  5396     AstFactory.forEachStatement( | 
 |  5397         identifier, AstFactory.nullLiteral(), AstFactory.emptyStatement()); | 
 |  5398     identifier.accept(builder); | 
 |  5399  | 
 |  5400     List<LocalVariableElement> variables = holder.localVariables; | 
 |  5401     expect(variables, hasLength(1)); | 
 |  5402     LocalVariableElement variable = variables[0]; | 
 |  5403     expect(variable, isNotNull); | 
 |  5404     expect(variable.hasImplicitType, isFalse); | 
 |  5405     expect(variable.isConst, isFalse); | 
 |  5406     expect(variable.isDeprecated, isFalse); | 
 |  5407     expect(variable.isFinal, isFalse); | 
 |  5408     expect(variable.isOverride, isFalse); | 
 |  5409     expect(variable.isPrivate, isFalse); | 
 |  5410     expect(variable.isPublic, isTrue); | 
 |  5411     expect(variable.isSynthetic, isFalse); | 
 |  5412     expect(variable.name, variableName); | 
 |  5413   } | 
 |  5414  | 
 |  5415   void test_visitDefaultFormalParameter_noType() { | 
 |  5416     // p = 0 | 
 |  5417     ElementHolder holder = new ElementHolder(); | 
 |  5418     ElementBuilder builder = new ElementBuilder(holder); | 
 |  5419     String parameterName = 'p'; | 
 |  5420     DefaultFormalParameter formalParameter = AstFactory | 
 |  5421         .positionalFormalParameter( | 
 |  5422             AstFactory.simpleFormalParameter3(parameterName), | 
 |  5423             AstFactory.integer(0)); | 
 |  5424     formalParameter.accept(builder); | 
 |  5425  | 
 |  5426     List<ParameterElement> parameters = holder.parameters; | 
 |  5427     expect(parameters, hasLength(1)); | 
 |  5428     ParameterElement parameter = parameters[0]; | 
 |  5429     expect(parameter.hasImplicitType, isTrue); | 
 |  5430     expect(parameter.isConst, isFalse); | 
 |  5431     expect(parameter.isDeprecated, isFalse); | 
 |  5432     expect(parameter.isFinal, isFalse); | 
 |  5433     expect(parameter.isInitializingFormal, isFalse); | 
 |  5434     expect(parameter.isOverride, isFalse); | 
 |  5435     expect(parameter.isPrivate, isFalse); | 
 |  5436     expect(parameter.isPublic, isTrue); | 
 |  5437     expect(parameter.isSynthetic, isFalse); | 
 |  5438     expect(parameter.name, parameterName); | 
 |  5439   } | 
 |  5440  | 
 |  5441   void test_visitDefaultFormalParameter_type() { | 
 |  5442     // E p = 0 | 
 |  5443     ElementHolder holder = new ElementHolder(); | 
 |  5444     ElementBuilder builder = new ElementBuilder(holder); | 
 |  5445     String parameterName = 'p'; | 
 |  5446     DefaultFormalParameter formalParameter = AstFactory.namedFormalParameter( | 
 |  5447         AstFactory.simpleFormalParameter4( | 
 |  5448             AstFactory.typeName4('E'), parameterName), | 
 |  5449         AstFactory.integer(0)); | 
 |  5450     formalParameter.accept(builder); | 
 |  5451  | 
 |  5452     List<ParameterElement> parameters = holder.parameters; | 
 |  5453     expect(parameters, hasLength(1)); | 
 |  5454     ParameterElement parameter = parameters[0]; | 
 |  5455     expect(parameter.hasImplicitType, isFalse); | 
 |  5456     expect(parameter.isConst, isFalse); | 
 |  5457     expect(parameter.isDeprecated, isFalse); | 
 |  5458     expect(parameter.isFinal, isFalse); | 
 |  5459     expect(parameter.isInitializingFormal, isFalse); | 
 |  5460     expect(parameter.isOverride, isFalse); | 
 |  5461     expect(parameter.isPrivate, isFalse); | 
 |  5462     expect(parameter.isPublic, isTrue); | 
 |  5463     expect(parameter.isSynthetic, isFalse); | 
 |  5464     expect(parameter.name, parameterName); | 
 |  5465   } | 
 |  5466  | 
|  5343   void test_visitEnumDeclaration() { |  5467   void test_visitEnumDeclaration() { | 
|  5344     ElementHolder holder = new ElementHolder(); |  5468     ElementHolder holder = new ElementHolder(); | 
|  5345     ElementBuilder builder = new ElementBuilder(holder); |  5469     ElementBuilder builder = new ElementBuilder(holder); | 
|  5346     String enumName = "E"; |  5470     String enumName = "E"; | 
|  5347     EnumDeclaration enumDeclaration = |  5471     EnumDeclaration enumDeclaration = | 
|  5348         AstFactory.enumDeclaration2(enumName, ["ONE"]); |  5472         AstFactory.enumDeclaration2(enumName, ["ONE"]); | 
|  5349     enumDeclaration.accept(builder); |  5473     enumDeclaration.accept(builder); | 
|  5350     List<ClassElement> enums = holder.enums; |  5474     List<ClassElement> enums = holder.enums; | 
|  5351     expect(enums, hasLength(1)); |  5475     expect(enums, hasLength(1)); | 
|  5352     ClassElement enumElement = enums[0]; |  5476     ClassElement enumElement = enums[0]; | 
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5437       AstFactory.simpleFormalParameter3(secondParameterName) |  5561       AstFactory.simpleFormalParameter3(secondParameterName) | 
|  5438     ]); |  5562     ]); | 
|  5439     parameterList.accept(builder); |  5563     parameterList.accept(builder); | 
|  5440     List<ParameterElement> parameters = holder.parameters; |  5564     List<ParameterElement> parameters = holder.parameters; | 
|  5441     expect(parameters, hasLength(2)); |  5565     expect(parameters, hasLength(2)); | 
|  5442     expect(parameters[0].name, firstParameterName); |  5566     expect(parameters[0].name, firstParameterName); | 
|  5443     expect(parameters[1].name, secondParameterName); |  5567     expect(parameters[1].name, secondParameterName); | 
|  5444   } |  5568   } | 
|  5445  |  5569  | 
|  5446   void test_visitFunctionDeclaration_external() { |  5570   void test_visitFunctionDeclaration_external() { | 
 |  5571     // external f(); | 
|  5447     ElementHolder holder = new ElementHolder(); |  5572     ElementHolder holder = new ElementHolder(); | 
|  5448     ElementBuilder builder = new ElementBuilder(holder); |  5573     ElementBuilder builder = new ElementBuilder(holder); | 
|  5449     String functionName = "f"; |  5574     String functionName = "f"; | 
|  5450     FunctionDeclaration declaration = AstFactory.functionDeclaration( |  5575     FunctionDeclaration declaration = AstFactory.functionDeclaration( | 
|  5451         null, |  5576         null, | 
|  5452         null, |  5577         null, | 
|  5453         functionName, |  5578         functionName, | 
|  5454         AstFactory.functionExpression2( |  5579         AstFactory.functionExpression2( | 
|  5455             AstFactory.formalParameterList(), AstFactory.blockFunctionBody2())); |  5580             AstFactory.formalParameterList(), AstFactory.emptyFunctionBody())); | 
|  5456     declaration.externalKeyword = |  5581     declaration.externalKeyword = | 
|  5457         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); |  5582         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); | 
|  5458     declaration.accept(builder); |  5583     declaration.accept(builder); | 
 |  5584  | 
|  5459     List<FunctionElement> functions = holder.functions; |  5585     List<FunctionElement> functions = holder.functions; | 
|  5460     expect(functions, hasLength(1)); |  5586     expect(functions, hasLength(1)); | 
|  5461     FunctionElement function = functions[0]; |  5587     FunctionElement function = functions[0]; | 
|  5462     expect(function, isNotNull); |  5588     expect(function, isNotNull); | 
|  5463     expect(function.name, functionName); |  5589     expect(function.name, functionName); | 
|  5464     expect(declaration.element, same(function)); |  5590     expect(declaration.element, same(function)); | 
|  5465     expect(declaration.functionExpression.element, same(function)); |  5591     expect(declaration.functionExpression.element, same(function)); | 
 |  5592     expect(function.hasImplicitReturnType, isTrue); | 
|  5466     expect(function.isExternal, isTrue); |  5593     expect(function.isExternal, isTrue); | 
|  5467     expect(function.isSynthetic, isFalse); |  5594     expect(function.isSynthetic, isFalse); | 
|  5468     expect(function.typeParameters, hasLength(0)); |  5595     expect(function.typeParameters, hasLength(0)); | 
|  5469   } |  5596   } | 
|  5470  |  5597  | 
|  5471   void test_visitFunctionDeclaration_getter() { |  5598   void test_visitFunctionDeclaration_getter() { | 
 |  5599     // get f() {} | 
|  5472     ElementHolder holder = new ElementHolder(); |  5600     ElementHolder holder = new ElementHolder(); | 
|  5473     ElementBuilder builder = new ElementBuilder(holder); |  5601     ElementBuilder builder = new ElementBuilder(holder); | 
|  5474     String functionName = "f"; |  5602     String functionName = "f"; | 
|  5475     FunctionDeclaration declaration = AstFactory.functionDeclaration( |  5603     FunctionDeclaration declaration = AstFactory.functionDeclaration( | 
|  5476         null, |  5604         null, | 
|  5477         Keyword.GET, |  5605         Keyword.GET, | 
|  5478         functionName, |  5606         functionName, | 
|  5479         AstFactory.functionExpression2( |  5607         AstFactory.functionExpression2( | 
|  5480             AstFactory.formalParameterList(), AstFactory.blockFunctionBody2())); |  5608             AstFactory.formalParameterList(), AstFactory.blockFunctionBody2())); | 
|  5481     declaration.accept(builder); |  5609     declaration.accept(builder); | 
 |  5610  | 
|  5482     List<PropertyAccessorElement> accessors = holder.accessors; |  5611     List<PropertyAccessorElement> accessors = holder.accessors; | 
|  5483     expect(accessors, hasLength(1)); |  5612     expect(accessors, hasLength(1)); | 
|  5484     PropertyAccessorElement accessor = accessors[0]; |  5613     PropertyAccessorElement accessor = accessors[0]; | 
|  5485     expect(accessor, isNotNull); |  5614     expect(accessor, isNotNull); | 
|  5486     expect(accessor.name, functionName); |  5615     expect(accessor.name, functionName); | 
|  5487     expect(declaration.element, same(accessor)); |  5616     expect(declaration.element, same(accessor)); | 
|  5488     expect(declaration.functionExpression.element, same(accessor)); |  5617     expect(declaration.functionExpression.element, same(accessor)); | 
 |  5618     expect(accessor.hasImplicitReturnType, isTrue); | 
|  5489     expect(accessor.isGetter, isTrue); |  5619     expect(accessor.isGetter, isTrue); | 
|  5490     expect(accessor.isExternal, isFalse); |  5620     expect(accessor.isExternal, isFalse); | 
|  5491     expect(accessor.isSetter, isFalse); |  5621     expect(accessor.isSetter, isFalse); | 
|  5492     expect(accessor.isSynthetic, isFalse); |  5622     expect(accessor.isSynthetic, isFalse); | 
|  5493     expect(accessor.typeParameters, hasLength(0)); |  5623     expect(accessor.typeParameters, hasLength(0)); | 
|  5494     PropertyInducingElement variable = accessor.variable; |  5624     PropertyInducingElement variable = accessor.variable; | 
|  5495     EngineTestCase.assertInstanceOf((obj) => obj is TopLevelVariableElement, |  5625     EngineTestCase.assertInstanceOf((obj) => obj is TopLevelVariableElement, | 
|  5496         TopLevelVariableElement, variable); |  5626         TopLevelVariableElement, variable); | 
|  5497     expect(variable.isSynthetic, isTrue); |  5627     expect(variable.isSynthetic, isTrue); | 
|  5498   } |  5628   } | 
|  5499  |  5629  | 
|  5500   void test_visitFunctionDeclaration_plain() { |  5630   void test_visitFunctionDeclaration_plain() { | 
 |  5631     // T f() {} | 
|  5501     ElementHolder holder = new ElementHolder(); |  5632     ElementHolder holder = new ElementHolder(); | 
|  5502     ElementBuilder builder = new ElementBuilder(holder); |  5633     ElementBuilder builder = new ElementBuilder(holder); | 
|  5503     String functionName = "f"; |  5634     String functionName = "f"; | 
|  5504     FunctionDeclaration declaration = AstFactory.functionDeclaration( |  5635     FunctionDeclaration declaration = AstFactory.functionDeclaration( | 
|  5505         null, |  5636         AstFactory.typeName4('T'), | 
|  5506         null, |  5637         null, | 
|  5507         functionName, |  5638         functionName, | 
|  5508         AstFactory.functionExpression2( |  5639         AstFactory.functionExpression2( | 
|  5509             AstFactory.formalParameterList(), AstFactory.blockFunctionBody2())); |  5640             AstFactory.formalParameterList(), AstFactory.blockFunctionBody2())); | 
|  5510     declaration.accept(builder); |  5641     declaration.accept(builder); | 
 |  5642  | 
|  5511     List<FunctionElement> functions = holder.functions; |  5643     List<FunctionElement> functions = holder.functions; | 
|  5512     expect(functions, hasLength(1)); |  5644     expect(functions, hasLength(1)); | 
|  5513     FunctionElement function = functions[0]; |  5645     FunctionElement function = functions[0]; | 
|  5514     expect(function, isNotNull); |  5646     expect(function, isNotNull); | 
 |  5647     expect(function.hasImplicitReturnType, isFalse); | 
|  5515     expect(function.name, functionName); |  5648     expect(function.name, functionName); | 
|  5516     expect(declaration.element, same(function)); |  5649     expect(declaration.element, same(function)); | 
|  5517     expect(declaration.functionExpression.element, same(function)); |  5650     expect(declaration.functionExpression.element, same(function)); | 
|  5518     expect(function.isExternal, isFalse); |  5651     expect(function.isExternal, isFalse); | 
|  5519     expect(function.isSynthetic, isFalse); |  5652     expect(function.isSynthetic, isFalse); | 
|  5520     expect(function.typeParameters, hasLength(0)); |  5653     expect(function.typeParameters, hasLength(0)); | 
|  5521   } |  5654   } | 
|  5522  |  5655  | 
|  5523   void test_visitFunctionDeclaration_setter() { |  5656   void test_visitFunctionDeclaration_setter() { | 
 |  5657     // set f() {} | 
|  5524     ElementHolder holder = new ElementHolder(); |  5658     ElementHolder holder = new ElementHolder(); | 
|  5525     ElementBuilder builder = new ElementBuilder(holder); |  5659     ElementBuilder builder = new ElementBuilder(holder); | 
|  5526     String functionName = "f"; |  5660     String functionName = "f"; | 
|  5527     FunctionDeclaration declaration = AstFactory.functionDeclaration( |  5661     FunctionDeclaration declaration = AstFactory.functionDeclaration( | 
|  5528         null, |  5662         null, | 
|  5529         Keyword.SET, |  5663         Keyword.SET, | 
|  5530         functionName, |  5664         functionName, | 
|  5531         AstFactory.functionExpression2( |  5665         AstFactory.functionExpression2( | 
|  5532             AstFactory.formalParameterList(), AstFactory.blockFunctionBody2())); |  5666             AstFactory.formalParameterList(), AstFactory.blockFunctionBody2())); | 
|  5533     declaration.accept(builder); |  5667     declaration.accept(builder); | 
 |  5668  | 
|  5534     List<PropertyAccessorElement> accessors = holder.accessors; |  5669     List<PropertyAccessorElement> accessors = holder.accessors; | 
|  5535     expect(accessors, hasLength(1)); |  5670     expect(accessors, hasLength(1)); | 
|  5536     PropertyAccessorElement accessor = accessors[0]; |  5671     PropertyAccessorElement accessor = accessors[0]; | 
|  5537     expect(accessor, isNotNull); |  5672     expect(accessor, isNotNull); | 
 |  5673     expect(accessor.hasImplicitReturnType, isFalse); | 
|  5538     expect(accessor.name, "$functionName="); |  5674     expect(accessor.name, "$functionName="); | 
|  5539     expect(declaration.element, same(accessor)); |  5675     expect(declaration.element, same(accessor)); | 
|  5540     expect(declaration.functionExpression.element, same(accessor)); |  5676     expect(declaration.functionExpression.element, same(accessor)); | 
|  5541     expect(accessor.isGetter, isFalse); |  5677     expect(accessor.isGetter, isFalse); | 
|  5542     expect(accessor.isExternal, isFalse); |  5678     expect(accessor.isExternal, isFalse); | 
|  5543     expect(accessor.isSetter, isTrue); |  5679     expect(accessor.isSetter, isTrue); | 
|  5544     expect(accessor.isSynthetic, isFalse); |  5680     expect(accessor.isSynthetic, isFalse); | 
|  5545     expect(accessor.typeParameters, hasLength(0)); |  5681     expect(accessor.typeParameters, hasLength(0)); | 
|  5546     PropertyInducingElement variable = accessor.variable; |  5682     PropertyInducingElement variable = accessor.variable; | 
|  5547     EngineTestCase.assertInstanceOf((obj) => obj is TopLevelVariableElement, |  5683     EngineTestCase.assertInstanceOf((obj) => obj is TopLevelVariableElement, | 
|  5548         TopLevelVariableElement, variable); |  5684         TopLevelVariableElement, variable); | 
|  5549     expect(variable.isSynthetic, isTrue); |  5685     expect(variable.isSynthetic, isTrue); | 
|  5550   } |  5686   } | 
|  5551  |  5687  | 
|  5552   void test_visitFunctionDeclaration_typeParameters() { |  5688   void test_visitFunctionDeclaration_typeParameters() { | 
 |  5689     // f<E>() {} | 
|  5553     ElementHolder holder = new ElementHolder(); |  5690     ElementHolder holder = new ElementHolder(); | 
|  5554     ElementBuilder builder = new ElementBuilder(holder); |  5691     ElementBuilder builder = new ElementBuilder(holder); | 
|  5555     String functionName = 'f'; |  5692     String functionName = 'f'; | 
|  5556     String typeParameterName = 'E'; |  5693     String typeParameterName = 'E'; | 
|  5557     FunctionExpression expression = AstFactory.functionExpression3( |  5694     FunctionExpression expression = AstFactory.functionExpression3( | 
|  5558         AstFactory.typeParameterList([typeParameterName]), |  5695         AstFactory.typeParameterList([typeParameterName]), | 
|  5559         AstFactory.formalParameterList(), |  5696         AstFactory.formalParameterList(), | 
|  5560         AstFactory.blockFunctionBody2()); |  5697         AstFactory.blockFunctionBody2()); | 
|  5561     FunctionDeclaration declaration = |  5698     FunctionDeclaration declaration = | 
|  5562         AstFactory.functionDeclaration(null, null, functionName, expression); |  5699         AstFactory.functionDeclaration(null, null, functionName, expression); | 
|  5563     declaration.accept(builder); |  5700     declaration.accept(builder); | 
 |  5701  | 
|  5564     List<FunctionElement> functions = holder.functions; |  5702     List<FunctionElement> functions = holder.functions; | 
|  5565     expect(functions, hasLength(1)); |  5703     expect(functions, hasLength(1)); | 
|  5566     FunctionElement function = functions[0]; |  5704     FunctionElement function = functions[0]; | 
|  5567     expect(function, isNotNull); |  5705     expect(function, isNotNull); | 
 |  5706     expect(function.hasImplicitReturnType, isTrue); | 
|  5568     expect(function.name, functionName); |  5707     expect(function.name, functionName); | 
|  5569     expect(function.isExternal, isFalse); |  5708     expect(function.isExternal, isFalse); | 
|  5570     expect(function.isSynthetic, isFalse); |  5709     expect(function.isSynthetic, isFalse); | 
|  5571     expect(declaration.element, same(function)); |  5710     expect(declaration.element, same(function)); | 
|  5572     expect(expression.element, same(function)); |  5711     expect(expression.element, same(function)); | 
|  5573     List<TypeParameterElement> typeParameters = function.typeParameters; |  5712     List<TypeParameterElement> typeParameters = function.typeParameters; | 
|  5574     expect(typeParameters, hasLength(1)); |  5713     expect(typeParameters, hasLength(1)); | 
|  5575     TypeParameterElement typeParameter = typeParameters[0]; |  5714     TypeParameterElement typeParameter = typeParameters[0]; | 
|  5576     expect(typeParameter, isNotNull); |  5715     expect(typeParameter, isNotNull); | 
|  5577     expect(typeParameter.name, typeParameterName); |  5716     expect(typeParameter.name, typeParameterName); | 
|  5578   } |  5717   } | 
|  5579  |  5718  | 
|  5580   void test_visitFunctionExpression() { |  5719   void test_visitFunctionExpression() { | 
|  5581     ElementHolder holder = new ElementHolder(); |  5720     ElementHolder holder = new ElementHolder(); | 
|  5582     ElementBuilder builder = new ElementBuilder(holder); |  5721     ElementBuilder builder = new ElementBuilder(holder); | 
|  5583     FunctionExpression expression = AstFactory.functionExpression2( |  5722     FunctionExpression expression = AstFactory.functionExpression2( | 
|  5584         AstFactory.formalParameterList(), AstFactory.blockFunctionBody2()); |  5723         AstFactory.formalParameterList(), AstFactory.blockFunctionBody2()); | 
|  5585     expression.accept(builder); |  5724     expression.accept(builder); | 
|  5586     List<FunctionElement> functions = holder.functions; |  5725     List<FunctionElement> functions = holder.functions; | 
|  5587     expect(functions, hasLength(1)); |  5726     expect(functions, hasLength(1)); | 
|  5588     FunctionElement function = functions[0]; |  5727     FunctionElement function = functions[0]; | 
|  5589     expect(function, isNotNull); |  5728     expect(function, isNotNull); | 
|  5590     expect(expression.element, same(function)); |  5729     expect(expression.element, same(function)); | 
 |  5730     expect(function.hasImplicitReturnType, isTrue); | 
|  5591     expect(function.isSynthetic, isFalse); |  5731     expect(function.isSynthetic, isFalse); | 
|  5592     expect(function.typeParameters, hasLength(0)); |  5732     expect(function.typeParameters, hasLength(0)); | 
|  5593   } |  5733   } | 
|  5594  |  5734  | 
|  5595   void test_visitFunctionTypeAlias() { |  5735   void test_visitFunctionTypeAlias() { | 
|  5596     ElementHolder holder = new ElementHolder(); |  5736     ElementHolder holder = new ElementHolder(); | 
|  5597     ElementBuilder builder = new ElementBuilder(holder); |  5737     ElementBuilder builder = new ElementBuilder(holder); | 
|  5598     String aliasName = "F"; |  5738     String aliasName = "F"; | 
|  5599     String parameterName = "E"; |  5739     String parameterName = "E"; | 
|  5600     FunctionTypeAlias aliasNode = AstFactory.typeAlias( |  5740     FunctionTypeAlias aliasNode = AstFactory.typeAlias( | 
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5670     statement.accept(builder); |  5810     statement.accept(builder); | 
|  5671     List<LabelElement> labels = holder.labels; |  5811     List<LabelElement> labels = holder.labels; | 
|  5672     expect(labels, hasLength(1)); |  5812     expect(labels, hasLength(1)); | 
|  5673     LabelElement label = labels[0]; |  5813     LabelElement label = labels[0]; | 
|  5674     expect(label, isNotNull); |  5814     expect(label, isNotNull); | 
|  5675     expect(label.name, labelName); |  5815     expect(label.name, labelName); | 
|  5676     expect(label.isSynthetic, isFalse); |  5816     expect(label.isSynthetic, isFalse); | 
|  5677   } |  5817   } | 
|  5678  |  5818  | 
|  5679   void test_visitMethodDeclaration_abstract() { |  5819   void test_visitMethodDeclaration_abstract() { | 
 |  5820     // m(); | 
|  5680     ElementHolder holder = new ElementHolder(); |  5821     ElementHolder holder = new ElementHolder(); | 
|  5681     ElementBuilder builder = new ElementBuilder(holder); |  5822     ElementBuilder builder = new ElementBuilder(holder); | 
|  5682     String methodName = "m"; |  5823     String methodName = "m"; | 
|  5683     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  5824     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5684         null, |  5825         null, | 
|  5685         null, |  5826         null, | 
|  5686         null, |  5827         null, | 
|  5687         null, |  5828         null, | 
|  5688         AstFactory.identifier3(methodName), |  5829         AstFactory.identifier3(methodName), | 
|  5689         AstFactory.formalParameterList(), |  5830         AstFactory.formalParameterList(), | 
|  5690         AstFactory.emptyFunctionBody()); |  5831         AstFactory.emptyFunctionBody()); | 
|  5691     methodDeclaration.accept(builder); |  5832     methodDeclaration.accept(builder); | 
 |  5833  | 
|  5692     List<MethodElement> methods = holder.methods; |  5834     List<MethodElement> methods = holder.methods; | 
|  5693     expect(methods, hasLength(1)); |  5835     expect(methods, hasLength(1)); | 
|  5694     MethodElement method = methods[0]; |  5836     MethodElement method = methods[0]; | 
|  5695     expect(method, isNotNull); |  5837     expect(method, isNotNull); | 
 |  5838     expect(method.hasImplicitReturnType, isTrue); | 
|  5696     expect(method.name, methodName); |  5839     expect(method.name, methodName); | 
|  5697     expect(method.functions, hasLength(0)); |  5840     expect(method.functions, hasLength(0)); | 
|  5698     expect(method.labels, hasLength(0)); |  5841     expect(method.labels, hasLength(0)); | 
|  5699     expect(method.localVariables, hasLength(0)); |  5842     expect(method.localVariables, hasLength(0)); | 
|  5700     expect(method.parameters, hasLength(0)); |  5843     expect(method.parameters, hasLength(0)); | 
|  5701     expect(method.typeParameters, hasLength(0)); |  5844     expect(method.typeParameters, hasLength(0)); | 
|  5702     expect(method.isAbstract, isTrue); |  5845     expect(method.isAbstract, isTrue); | 
|  5703     expect(method.isExternal, isFalse); |  5846     expect(method.isExternal, isFalse); | 
|  5704     expect(method.isStatic, isFalse); |  5847     expect(method.isStatic, isFalse); | 
|  5705     expect(method.isSynthetic, isFalse); |  5848     expect(method.isSynthetic, isFalse); | 
|  5706   } |  5849   } | 
|  5707  |  5850  | 
|  5708   void test_visitMethodDeclaration_external() { |  5851   void test_visitMethodDeclaration_external() { | 
 |  5852     // external m(); | 
|  5709     ElementHolder holder = new ElementHolder(); |  5853     ElementHolder holder = new ElementHolder(); | 
|  5710     ElementBuilder builder = new ElementBuilder(holder); |  5854     ElementBuilder builder = new ElementBuilder(holder); | 
|  5711     String methodName = "m"; |  5855     String methodName = "m"; | 
|  5712     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  5856     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5713         null, |  5857         null, | 
|  5714         null, |  5858         null, | 
|  5715         null, |  5859         null, | 
|  5716         null, |  5860         null, | 
|  5717         AstFactory.identifier3(methodName), |  5861         AstFactory.identifier3(methodName), | 
|  5718         AstFactory.formalParameterList(), |  5862         AstFactory.formalParameterList(), | 
|  5719         AstFactory.emptyFunctionBody()); |  5863         AstFactory.emptyFunctionBody()); | 
|  5720     methodDeclaration.externalKeyword = |  5864     methodDeclaration.externalKeyword = | 
|  5721         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); |  5865         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); | 
|  5722     methodDeclaration.accept(builder); |  5866     methodDeclaration.accept(builder); | 
 |  5867  | 
|  5723     List<MethodElement> methods = holder.methods; |  5868     List<MethodElement> methods = holder.methods; | 
|  5724     expect(methods, hasLength(1)); |  5869     expect(methods, hasLength(1)); | 
|  5725     MethodElement method = methods[0]; |  5870     MethodElement method = methods[0]; | 
|  5726     expect(method, isNotNull); |  5871     expect(method, isNotNull); | 
 |  5872     expect(method.hasImplicitReturnType, isTrue); | 
|  5727     expect(method.name, methodName); |  5873     expect(method.name, methodName); | 
|  5728     expect(method.functions, hasLength(0)); |  5874     expect(method.functions, hasLength(0)); | 
|  5729     expect(method.labels, hasLength(0)); |  5875     expect(method.labels, hasLength(0)); | 
|  5730     expect(method.localVariables, hasLength(0)); |  5876     expect(method.localVariables, hasLength(0)); | 
|  5731     expect(method.parameters, hasLength(0)); |  5877     expect(method.parameters, hasLength(0)); | 
|  5732     expect(method.typeParameters, hasLength(0)); |  5878     expect(method.typeParameters, hasLength(0)); | 
|  5733     expect(method.isAbstract, isFalse); |  5879     expect(method.isAbstract, isFalse); | 
|  5734     expect(method.isExternal, isTrue); |  5880     expect(method.isExternal, isTrue); | 
|  5735     expect(method.isStatic, isFalse); |  5881     expect(method.isStatic, isFalse); | 
|  5736     expect(method.isSynthetic, isFalse); |  5882     expect(method.isSynthetic, isFalse); | 
|  5737   } |  5883   } | 
|  5738  |  5884  | 
|  5739   void test_visitMethodDeclaration_getter() { |  5885   void test_visitMethodDeclaration_getter() { | 
 |  5886     // get m() {} | 
|  5740     ElementHolder holder = new ElementHolder(); |  5887     ElementHolder holder = new ElementHolder(); | 
|  5741     ElementBuilder builder = new ElementBuilder(holder); |  5888     ElementBuilder builder = new ElementBuilder(holder); | 
|  5742     String methodName = "m"; |  5889     String methodName = "m"; | 
|  5743     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  5890     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5744         null, |  5891         null, | 
|  5745         null, |  5892         null, | 
|  5746         Keyword.GET, |  5893         Keyword.GET, | 
|  5747         null, |  5894         null, | 
|  5748         AstFactory.identifier3(methodName), |  5895         AstFactory.identifier3(methodName), | 
|  5749         AstFactory.formalParameterList(), |  5896         AstFactory.formalParameterList(), | 
|  5750         AstFactory.blockFunctionBody2()); |  5897         AstFactory.blockFunctionBody2()); | 
|  5751     methodDeclaration.accept(builder); |  5898     methodDeclaration.accept(builder); | 
 |  5899  | 
|  5752     List<FieldElement> fields = holder.fields; |  5900     List<FieldElement> fields = holder.fields; | 
|  5753     expect(fields, hasLength(1)); |  5901     expect(fields, hasLength(1)); | 
|  5754     FieldElement field = fields[0]; |  5902     FieldElement field = fields[0]; | 
|  5755     expect(field, isNotNull); |  5903     expect(field, isNotNull); | 
|  5756     expect(field.name, methodName); |  5904     expect(field.name, methodName); | 
|  5757     expect(field.isSynthetic, isTrue); |  5905     expect(field.isSynthetic, isTrue); | 
|  5758     expect(field.setter, isNull); |  5906     expect(field.setter, isNull); | 
|  5759     PropertyAccessorElement getter = field.getter; |  5907     PropertyAccessorElement getter = field.getter; | 
|  5760     expect(getter, isNotNull); |  5908     expect(getter, isNotNull); | 
 |  5909     expect(getter.hasImplicitReturnType, isTrue); | 
|  5761     expect(getter.isAbstract, isFalse); |  5910     expect(getter.isAbstract, isFalse); | 
|  5762     expect(getter.isExternal, isFalse); |  5911     expect(getter.isExternal, isFalse); | 
|  5763     expect(getter.isGetter, isTrue); |  5912     expect(getter.isGetter, isTrue); | 
|  5764     expect(getter.isSynthetic, isFalse); |  5913     expect(getter.isSynthetic, isFalse); | 
|  5765     expect(getter.name, methodName); |  5914     expect(getter.name, methodName); | 
|  5766     expect(getter.variable, field); |  5915     expect(getter.variable, field); | 
|  5767     expect(getter.functions, hasLength(0)); |  5916     expect(getter.functions, hasLength(0)); | 
|  5768     expect(getter.labels, hasLength(0)); |  5917     expect(getter.labels, hasLength(0)); | 
|  5769     expect(getter.localVariables, hasLength(0)); |  5918     expect(getter.localVariables, hasLength(0)); | 
|  5770     expect(getter.parameters, hasLength(0)); |  5919     expect(getter.parameters, hasLength(0)); | 
|  5771   } |  5920   } | 
|  5772  |  5921  | 
|  5773   void test_visitMethodDeclaration_getter_abstract() { |  5922   void test_visitMethodDeclaration_getter_abstract() { | 
 |  5923     // get m(); | 
|  5774     ElementHolder holder = new ElementHolder(); |  5924     ElementHolder holder = new ElementHolder(); | 
|  5775     ElementBuilder builder = new ElementBuilder(holder); |  5925     ElementBuilder builder = new ElementBuilder(holder); | 
|  5776     String methodName = "m"; |  5926     String methodName = "m"; | 
|  5777     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  5927     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5778         null, |  5928         null, | 
|  5779         null, |  5929         null, | 
|  5780         Keyword.GET, |  5930         Keyword.GET, | 
|  5781         null, |  5931         null, | 
|  5782         AstFactory.identifier3(methodName), |  5932         AstFactory.identifier3(methodName), | 
|  5783         AstFactory.formalParameterList(), |  5933         AstFactory.formalParameterList(), | 
|  5784         AstFactory.emptyFunctionBody()); |  5934         AstFactory.emptyFunctionBody()); | 
|  5785     methodDeclaration.accept(builder); |  5935     methodDeclaration.accept(builder); | 
 |  5936  | 
|  5786     List<FieldElement> fields = holder.fields; |  5937     List<FieldElement> fields = holder.fields; | 
|  5787     expect(fields, hasLength(1)); |  5938     expect(fields, hasLength(1)); | 
|  5788     FieldElement field = fields[0]; |  5939     FieldElement field = fields[0]; | 
|  5789     expect(field, isNotNull); |  5940     expect(field, isNotNull); | 
|  5790     expect(field.name, methodName); |  5941     expect(field.name, methodName); | 
|  5791     expect(field.isSynthetic, isTrue); |  5942     expect(field.isSynthetic, isTrue); | 
|  5792     expect(field.setter, isNull); |  5943     expect(field.setter, isNull); | 
|  5793     PropertyAccessorElement getter = field.getter; |  5944     PropertyAccessorElement getter = field.getter; | 
|  5794     expect(getter, isNotNull); |  5945     expect(getter, isNotNull); | 
 |  5946     expect(getter.hasImplicitReturnType, isTrue); | 
|  5795     expect(getter.isAbstract, isTrue); |  5947     expect(getter.isAbstract, isTrue); | 
|  5796     expect(getter.isExternal, isFalse); |  5948     expect(getter.isExternal, isFalse); | 
|  5797     expect(getter.isGetter, isTrue); |  5949     expect(getter.isGetter, isTrue); | 
|  5798     expect(getter.isSynthetic, isFalse); |  5950     expect(getter.isSynthetic, isFalse); | 
|  5799     expect(getter.name, methodName); |  5951     expect(getter.name, methodName); | 
|  5800     expect(getter.variable, field); |  5952     expect(getter.variable, field); | 
|  5801     expect(getter.functions, hasLength(0)); |  5953     expect(getter.functions, hasLength(0)); | 
|  5802     expect(getter.labels, hasLength(0)); |  5954     expect(getter.labels, hasLength(0)); | 
|  5803     expect(getter.localVariables, hasLength(0)); |  5955     expect(getter.localVariables, hasLength(0)); | 
|  5804     expect(getter.parameters, hasLength(0)); |  5956     expect(getter.parameters, hasLength(0)); | 
|  5805   } |  5957   } | 
|  5806  |  5958  | 
|  5807   void test_visitMethodDeclaration_getter_external() { |  5959   void test_visitMethodDeclaration_getter_external() { | 
 |  5960     // external get m(); | 
|  5808     ElementHolder holder = new ElementHolder(); |  5961     ElementHolder holder = new ElementHolder(); | 
|  5809     ElementBuilder builder = new ElementBuilder(holder); |  5962     ElementBuilder builder = new ElementBuilder(holder); | 
|  5810     String methodName = "m"; |  5963     String methodName = "m"; | 
|  5811     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration( |  5964     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration( | 
|  5812         null, |  5965         null, | 
|  5813         null, |  5966         null, | 
|  5814         Keyword.GET, |  5967         Keyword.GET, | 
|  5815         null, |  5968         null, | 
|  5816         AstFactory.identifier3(methodName), |  5969         AstFactory.identifier3(methodName), | 
|  5817         AstFactory.formalParameterList()); |  5970         AstFactory.formalParameterList()); | 
|  5818     methodDeclaration.externalKeyword = |  5971     methodDeclaration.externalKeyword = | 
|  5819         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); |  5972         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); | 
|  5820     methodDeclaration.accept(builder); |  5973     methodDeclaration.accept(builder); | 
 |  5974  | 
|  5821     List<FieldElement> fields = holder.fields; |  5975     List<FieldElement> fields = holder.fields; | 
|  5822     expect(fields, hasLength(1)); |  5976     expect(fields, hasLength(1)); | 
|  5823     FieldElement field = fields[0]; |  5977     FieldElement field = fields[0]; | 
|  5824     expect(field, isNotNull); |  5978     expect(field, isNotNull); | 
|  5825     expect(field.name, methodName); |  5979     expect(field.name, methodName); | 
|  5826     expect(field.isSynthetic, isTrue); |  5980     expect(field.isSynthetic, isTrue); | 
|  5827     expect(field.setter, isNull); |  5981     expect(field.setter, isNull); | 
|  5828     PropertyAccessorElement getter = field.getter; |  5982     PropertyAccessorElement getter = field.getter; | 
|  5829     expect(getter, isNotNull); |  5983     expect(getter, isNotNull); | 
 |  5984     expect(getter.hasImplicitReturnType, isTrue); | 
|  5830     expect(getter.isAbstract, isFalse); |  5985     expect(getter.isAbstract, isFalse); | 
|  5831     expect(getter.isExternal, isTrue); |  5986     expect(getter.isExternal, isTrue); | 
|  5832     expect(getter.isGetter, isTrue); |  5987     expect(getter.isGetter, isTrue); | 
|  5833     expect(getter.isSynthetic, isFalse); |  5988     expect(getter.isSynthetic, isFalse); | 
|  5834     expect(getter.name, methodName); |  5989     expect(getter.name, methodName); | 
|  5835     expect(getter.variable, field); |  5990     expect(getter.variable, field); | 
|  5836     expect(getter.functions, hasLength(0)); |  5991     expect(getter.functions, hasLength(0)); | 
|  5837     expect(getter.labels, hasLength(0)); |  5992     expect(getter.labels, hasLength(0)); | 
|  5838     expect(getter.localVariables, hasLength(0)); |  5993     expect(getter.localVariables, hasLength(0)); | 
|  5839     expect(getter.parameters, hasLength(0)); |  5994     expect(getter.parameters, hasLength(0)); | 
|  5840   } |  5995   } | 
|  5841  |  5996  | 
|  5842   void test_visitMethodDeclaration_minimal() { |  5997   void test_visitMethodDeclaration_minimal() { | 
 |  5998     // T m() {} | 
|  5843     ElementHolder holder = new ElementHolder(); |  5999     ElementHolder holder = new ElementHolder(); | 
|  5844     ElementBuilder builder = new ElementBuilder(holder); |  6000     ElementBuilder builder = new ElementBuilder(holder); | 
|  5845     String methodName = "m"; |  6001     String methodName = "m"; | 
|  5846     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  6002     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5847         null, |  6003         null, | 
|  5848         null, |  6004         AstFactory.typeName4('T'), | 
|  5849         null, |  6005         null, | 
|  5850         null, |  6006         null, | 
|  5851         AstFactory.identifier3(methodName), |  6007         AstFactory.identifier3(methodName), | 
|  5852         AstFactory.formalParameterList(), |  6008         AstFactory.formalParameterList(), | 
|  5853         AstFactory.blockFunctionBody2()); |  6009         AstFactory.blockFunctionBody2()); | 
|  5854     methodDeclaration.accept(builder); |  6010     methodDeclaration.accept(builder); | 
|  5855     List<MethodElement> methods = holder.methods; |  6011     List<MethodElement> methods = holder.methods; | 
|  5856     expect(methods, hasLength(1)); |  6012     expect(methods, hasLength(1)); | 
|  5857     MethodElement method = methods[0]; |  6013     MethodElement method = methods[0]; | 
|  5858     expect(method, isNotNull); |  6014     expect(method, isNotNull); | 
 |  6015     expect(method.hasImplicitReturnType, isFalse); | 
|  5859     expect(method.name, methodName); |  6016     expect(method.name, methodName); | 
|  5860     expect(method.functions, hasLength(0)); |  6017     expect(method.functions, hasLength(0)); | 
|  5861     expect(method.labels, hasLength(0)); |  6018     expect(method.labels, hasLength(0)); | 
|  5862     expect(method.localVariables, hasLength(0)); |  6019     expect(method.localVariables, hasLength(0)); | 
|  5863     expect(method.parameters, hasLength(0)); |  6020     expect(method.parameters, hasLength(0)); | 
|  5864     expect(method.typeParameters, hasLength(0)); |  6021     expect(method.typeParameters, hasLength(0)); | 
|  5865     expect(method.isAbstract, isFalse); |  6022     expect(method.isAbstract, isFalse); | 
|  5866     expect(method.isExternal, isFalse); |  6023     expect(method.isExternal, isFalse); | 
|  5867     expect(method.isStatic, isFalse); |  6024     expect(method.isStatic, isFalse); | 
|  5868     expect(method.isSynthetic, isFalse); |  6025     expect(method.isSynthetic, isFalse); | 
|  5869   } |  6026   } | 
|  5870  |  6027  | 
|  5871   void test_visitMethodDeclaration_operator() { |  6028   void test_visitMethodDeclaration_operator() { | 
 |  6029     // operator +(addend) {} | 
|  5872     ElementHolder holder = new ElementHolder(); |  6030     ElementHolder holder = new ElementHolder(); | 
|  5873     ElementBuilder builder = new ElementBuilder(holder); |  6031     ElementBuilder builder = new ElementBuilder(holder); | 
|  5874     String methodName = "+"; |  6032     String methodName = "+"; | 
|  5875     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  6033     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5876         null, |  6034         null, | 
|  5877         null, |  6035         null, | 
|  5878         null, |  6036         null, | 
|  5879         Keyword.OPERATOR, |  6037         Keyword.OPERATOR, | 
|  5880         AstFactory.identifier3(methodName), |  6038         AstFactory.identifier3(methodName), | 
|  5881         AstFactory |  6039         AstFactory | 
|  5882             .formalParameterList([AstFactory.simpleFormalParameter3("addend")]), |  6040             .formalParameterList([AstFactory.simpleFormalParameter3("addend")]), | 
|  5883         AstFactory.blockFunctionBody2()); |  6041         AstFactory.blockFunctionBody2()); | 
|  5884     methodDeclaration.accept(builder); |  6042     methodDeclaration.accept(builder); | 
 |  6043  | 
|  5885     List<MethodElement> methods = holder.methods; |  6044     List<MethodElement> methods = holder.methods; | 
|  5886     expect(methods, hasLength(1)); |  6045     expect(methods, hasLength(1)); | 
|  5887     MethodElement method = methods[0]; |  6046     MethodElement method = methods[0]; | 
|  5888     expect(method, isNotNull); |  6047     expect(method, isNotNull); | 
 |  6048     expect(method.hasImplicitReturnType, isTrue); | 
|  5889     expect(method.name, methodName); |  6049     expect(method.name, methodName); | 
|  5890     expect(method.functions, hasLength(0)); |  6050     expect(method.functions, hasLength(0)); | 
|  5891     expect(method.labels, hasLength(0)); |  6051     expect(method.labels, hasLength(0)); | 
|  5892     expect(method.localVariables, hasLength(0)); |  6052     expect(method.localVariables, hasLength(0)); | 
|  5893     expect(method.parameters, hasLength(1)); |  6053     expect(method.parameters, hasLength(1)); | 
|  5894     expect(method.typeParameters, hasLength(0)); |  6054     expect(method.typeParameters, hasLength(0)); | 
|  5895     expect(method.isAbstract, isFalse); |  6055     expect(method.isAbstract, isFalse); | 
|  5896     expect(method.isExternal, isFalse); |  6056     expect(method.isExternal, isFalse); | 
|  5897     expect(method.isStatic, isFalse); |  6057     expect(method.isStatic, isFalse); | 
|  5898     expect(method.isSynthetic, isFalse); |  6058     expect(method.isSynthetic, isFalse); | 
|  5899   } |  6059   } | 
|  5900  |  6060  | 
|  5901   void test_visitMethodDeclaration_setter() { |  6061   void test_visitMethodDeclaration_setter() { | 
 |  6062     // set m() {} | 
|  5902     ElementHolder holder = new ElementHolder(); |  6063     ElementHolder holder = new ElementHolder(); | 
|  5903     ElementBuilder builder = new ElementBuilder(holder); |  6064     ElementBuilder builder = new ElementBuilder(holder); | 
|  5904     String methodName = "m"; |  6065     String methodName = "m"; | 
|  5905     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  6066     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5906         null, |  6067         null, | 
|  5907         null, |  6068         null, | 
|  5908         Keyword.SET, |  6069         Keyword.SET, | 
|  5909         null, |  6070         null, | 
|  5910         AstFactory.identifier3(methodName), |  6071         AstFactory.identifier3(methodName), | 
|  5911         AstFactory.formalParameterList(), |  6072         AstFactory.formalParameterList(), | 
|  5912         AstFactory.blockFunctionBody2()); |  6073         AstFactory.blockFunctionBody2()); | 
|  5913     methodDeclaration.accept(builder); |  6074     methodDeclaration.accept(builder); | 
 |  6075  | 
|  5914     List<FieldElement> fields = holder.fields; |  6076     List<FieldElement> fields = holder.fields; | 
|  5915     expect(fields, hasLength(1)); |  6077     expect(fields, hasLength(1)); | 
|  5916     FieldElement field = fields[0]; |  6078     FieldElement field = fields[0]; | 
|  5917     expect(field, isNotNull); |  6079     expect(field, isNotNull); | 
|  5918     expect(field.name, methodName); |  6080     expect(field.name, methodName); | 
|  5919     expect(field.isSynthetic, isTrue); |  6081     expect(field.isSynthetic, isTrue); | 
|  5920     expect(field.getter, isNull); |  6082     expect(field.getter, isNull); | 
|  5921     PropertyAccessorElement setter = field.setter; |  6083     PropertyAccessorElement setter = field.setter; | 
|  5922     expect(setter, isNotNull); |  6084     expect(setter, isNotNull); | 
 |  6085     expect(setter.hasImplicitReturnType, isFalse); | 
|  5923     expect(setter.isAbstract, isFalse); |  6086     expect(setter.isAbstract, isFalse); | 
|  5924     expect(setter.isExternal, isFalse); |  6087     expect(setter.isExternal, isFalse); | 
|  5925     expect(setter.isSetter, isTrue); |  6088     expect(setter.isSetter, isTrue); | 
|  5926     expect(setter.isSynthetic, isFalse); |  6089     expect(setter.isSynthetic, isFalse); | 
|  5927     expect(setter.name, "$methodName="); |  6090     expect(setter.name, "$methodName="); | 
|  5928     expect(setter.displayName, methodName); |  6091     expect(setter.displayName, methodName); | 
|  5929     expect(setter.variable, field); |  6092     expect(setter.variable, field); | 
|  5930     expect(setter.functions, hasLength(0)); |  6093     expect(setter.functions, hasLength(0)); | 
|  5931     expect(setter.labels, hasLength(0)); |  6094     expect(setter.labels, hasLength(0)); | 
|  5932     expect(setter.localVariables, hasLength(0)); |  6095     expect(setter.localVariables, hasLength(0)); | 
|  5933     expect(setter.parameters, hasLength(0)); |  6096     expect(setter.parameters, hasLength(0)); | 
|  5934   } |  6097   } | 
|  5935  |  6098  | 
|  5936   void test_visitMethodDeclaration_setter_abstract() { |  6099   void test_visitMethodDeclaration_setter_abstract() { | 
 |  6100     // set m(); | 
|  5937     ElementHolder holder = new ElementHolder(); |  6101     ElementHolder holder = new ElementHolder(); | 
|  5938     ElementBuilder builder = new ElementBuilder(holder); |  6102     ElementBuilder builder = new ElementBuilder(holder); | 
|  5939     String methodName = "m"; |  6103     String methodName = "m"; | 
|  5940     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  6104     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  5941         null, |  6105         null, | 
|  5942         null, |  6106         null, | 
|  5943         Keyword.SET, |  6107         Keyword.SET, | 
|  5944         null, |  6108         null, | 
|  5945         AstFactory.identifier3(methodName), |  6109         AstFactory.identifier3(methodName), | 
|  5946         AstFactory.formalParameterList(), |  6110         AstFactory.formalParameterList(), | 
|  5947         AstFactory.emptyFunctionBody()); |  6111         AstFactory.emptyFunctionBody()); | 
|  5948     methodDeclaration.accept(builder); |  6112     methodDeclaration.accept(builder); | 
 |  6113  | 
|  5949     List<FieldElement> fields = holder.fields; |  6114     List<FieldElement> fields = holder.fields; | 
|  5950     expect(fields, hasLength(1)); |  6115     expect(fields, hasLength(1)); | 
|  5951     FieldElement field = fields[0]; |  6116     FieldElement field = fields[0]; | 
|  5952     expect(field, isNotNull); |  6117     expect(field, isNotNull); | 
|  5953     expect(field.name, methodName); |  6118     expect(field.name, methodName); | 
|  5954     expect(field.isSynthetic, isTrue); |  6119     expect(field.isSynthetic, isTrue); | 
|  5955     expect(field.getter, isNull); |  6120     expect(field.getter, isNull); | 
|  5956     PropertyAccessorElement setter = field.setter; |  6121     PropertyAccessorElement setter = field.setter; | 
|  5957     expect(setter, isNotNull); |  6122     expect(setter, isNotNull); | 
 |  6123     expect(setter.hasImplicitReturnType, isFalse); | 
|  5958     expect(setter.isAbstract, isTrue); |  6124     expect(setter.isAbstract, isTrue); | 
|  5959     expect(setter.isExternal, isFalse); |  6125     expect(setter.isExternal, isFalse); | 
|  5960     expect(setter.isSetter, isTrue); |  6126     expect(setter.isSetter, isTrue); | 
|  5961     expect(setter.isSynthetic, isFalse); |  6127     expect(setter.isSynthetic, isFalse); | 
|  5962     expect(setter.name, "$methodName="); |  6128     expect(setter.name, "$methodName="); | 
|  5963     expect(setter.displayName, methodName); |  6129     expect(setter.displayName, methodName); | 
|  5964     expect(setter.variable, field); |  6130     expect(setter.variable, field); | 
|  5965     expect(setter.functions, hasLength(0)); |  6131     expect(setter.functions, hasLength(0)); | 
|  5966     expect(setter.labels, hasLength(0)); |  6132     expect(setter.labels, hasLength(0)); | 
|  5967     expect(setter.localVariables, hasLength(0)); |  6133     expect(setter.localVariables, hasLength(0)); | 
|  5968     expect(setter.parameters, hasLength(0)); |  6134     expect(setter.parameters, hasLength(0)); | 
|  5969   } |  6135   } | 
|  5970  |  6136  | 
|  5971   void test_visitMethodDeclaration_setter_external() { |  6137   void test_visitMethodDeclaration_setter_external() { | 
 |  6138     // external m(); | 
|  5972     ElementHolder holder = new ElementHolder(); |  6139     ElementHolder holder = new ElementHolder(); | 
|  5973     ElementBuilder builder = new ElementBuilder(holder); |  6140     ElementBuilder builder = new ElementBuilder(holder); | 
|  5974     String methodName = "m"; |  6141     String methodName = "m"; | 
|  5975     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration( |  6142     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration( | 
|  5976         null, |  6143         null, | 
|  5977         null, |  6144         null, | 
|  5978         Keyword.SET, |  6145         Keyword.SET, | 
|  5979         null, |  6146         null, | 
|  5980         AstFactory.identifier3(methodName), |  6147         AstFactory.identifier3(methodName), | 
|  5981         AstFactory.formalParameterList()); |  6148         AstFactory.formalParameterList()); | 
|  5982     methodDeclaration.externalKeyword = |  6149     methodDeclaration.externalKeyword = | 
|  5983         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); |  6150         TokenFactory.tokenFromKeyword(Keyword.EXTERNAL); | 
|  5984     methodDeclaration.accept(builder); |  6151     methodDeclaration.accept(builder); | 
 |  6152  | 
|  5985     List<FieldElement> fields = holder.fields; |  6153     List<FieldElement> fields = holder.fields; | 
|  5986     expect(fields, hasLength(1)); |  6154     expect(fields, hasLength(1)); | 
|  5987     FieldElement field = fields[0]; |  6155     FieldElement field = fields[0]; | 
|  5988     expect(field, isNotNull); |  6156     expect(field, isNotNull); | 
|  5989     expect(field.name, methodName); |  6157     expect(field.name, methodName); | 
|  5990     expect(field.isSynthetic, isTrue); |  6158     expect(field.isSynthetic, isTrue); | 
|  5991     expect(field.getter, isNull); |  6159     expect(field.getter, isNull); | 
|  5992     PropertyAccessorElement setter = field.setter; |  6160     PropertyAccessorElement setter = field.setter; | 
|  5993     expect(setter, isNotNull); |  6161     expect(setter, isNotNull); | 
 |  6162     expect(setter.hasImplicitReturnType, isFalse); | 
|  5994     expect(setter.isAbstract, isFalse); |  6163     expect(setter.isAbstract, isFalse); | 
|  5995     expect(setter.isExternal, isTrue); |  6164     expect(setter.isExternal, isTrue); | 
|  5996     expect(setter.isSetter, isTrue); |  6165     expect(setter.isSetter, isTrue); | 
|  5997     expect(setter.isSynthetic, isFalse); |  6166     expect(setter.isSynthetic, isFalse); | 
|  5998     expect(setter.name, "$methodName="); |  6167     expect(setter.name, "$methodName="); | 
|  5999     expect(setter.displayName, methodName); |  6168     expect(setter.displayName, methodName); | 
|  6000     expect(setter.variable, field); |  6169     expect(setter.variable, field); | 
|  6001     expect(setter.functions, hasLength(0)); |  6170     expect(setter.functions, hasLength(0)); | 
|  6002     expect(setter.labels, hasLength(0)); |  6171     expect(setter.labels, hasLength(0)); | 
|  6003     expect(setter.localVariables, hasLength(0)); |  6172     expect(setter.localVariables, hasLength(0)); | 
|  6004     expect(setter.parameters, hasLength(0)); |  6173     expect(setter.parameters, hasLength(0)); | 
|  6005   } |  6174   } | 
|  6006  |  6175  | 
|  6007   void test_visitMethodDeclaration_static() { |  6176   void test_visitMethodDeclaration_static() { | 
 |  6177     // static m() {} | 
|  6008     ElementHolder holder = new ElementHolder(); |  6178     ElementHolder holder = new ElementHolder(); | 
|  6009     ElementBuilder builder = new ElementBuilder(holder); |  6179     ElementBuilder builder = new ElementBuilder(holder); | 
|  6010     String methodName = "m"; |  6180     String methodName = "m"; | 
|  6011     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  6181     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  6012         Keyword.STATIC, |  6182         Keyword.STATIC, | 
|  6013         null, |  6183         null, | 
|  6014         null, |  6184         null, | 
|  6015         null, |  6185         null, | 
|  6016         AstFactory.identifier3(methodName), |  6186         AstFactory.identifier3(methodName), | 
|  6017         AstFactory.formalParameterList(), |  6187         AstFactory.formalParameterList(), | 
|  6018         AstFactory.blockFunctionBody2()); |  6188         AstFactory.blockFunctionBody2()); | 
|  6019     methodDeclaration.accept(builder); |  6189     methodDeclaration.accept(builder); | 
|  6020     List<MethodElement> methods = holder.methods; |  6190     List<MethodElement> methods = holder.methods; | 
|  6021     expect(methods, hasLength(1)); |  6191     expect(methods, hasLength(1)); | 
|  6022     MethodElement method = methods[0]; |  6192     MethodElement method = methods[0]; | 
|  6023     expect(method, isNotNull); |  6193     expect(method, isNotNull); | 
 |  6194     expect(method.hasImplicitReturnType, isTrue); | 
|  6024     expect(method.name, methodName); |  6195     expect(method.name, methodName); | 
|  6025     expect(method.functions, hasLength(0)); |  6196     expect(method.functions, hasLength(0)); | 
|  6026     expect(method.labels, hasLength(0)); |  6197     expect(method.labels, hasLength(0)); | 
|  6027     expect(method.localVariables, hasLength(0)); |  6198     expect(method.localVariables, hasLength(0)); | 
|  6028     expect(method.parameters, hasLength(0)); |  6199     expect(method.parameters, hasLength(0)); | 
|  6029     expect(method.typeParameters, hasLength(0)); |  6200     expect(method.typeParameters, hasLength(0)); | 
|  6030     expect(method.isAbstract, isFalse); |  6201     expect(method.isAbstract, isFalse); | 
|  6031     expect(method.isExternal, isFalse); |  6202     expect(method.isExternal, isFalse); | 
|  6032     expect(method.isStatic, isTrue); |  6203     expect(method.isStatic, isTrue); | 
|  6033     expect(method.isSynthetic, isFalse); |  6204     expect(method.isSynthetic, isFalse); | 
|  6034   } |  6205   } | 
|  6035  |  6206  | 
|  6036   void test_visitMethodDeclaration_typeParameters() { |  6207   void test_visitMethodDeclaration_typeParameters() { | 
 |  6208     // m<E>() {} | 
|  6037     ElementHolder holder = new ElementHolder(); |  6209     ElementHolder holder = new ElementHolder(); | 
|  6038     ElementBuilder builder = new ElementBuilder(holder); |  6210     ElementBuilder builder = new ElementBuilder(holder); | 
|  6039     String methodName = "m"; |  6211     String methodName = "m"; | 
|  6040     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  6212     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  6041         null, |  6213         null, | 
|  6042         null, |  6214         null, | 
|  6043         null, |  6215         null, | 
|  6044         null, |  6216         null, | 
|  6045         AstFactory.identifier3(methodName), |  6217         AstFactory.identifier3(methodName), | 
|  6046         AstFactory.formalParameterList(), |  6218         AstFactory.formalParameterList(), | 
|  6047         AstFactory.blockFunctionBody2()); |  6219         AstFactory.blockFunctionBody2()); | 
|  6048     methodDeclaration.typeParameters = AstFactory.typeParameterList(['E']); |  6220     methodDeclaration.typeParameters = AstFactory.typeParameterList(['E']); | 
|  6049     methodDeclaration.accept(builder); |  6221     methodDeclaration.accept(builder); | 
 |  6222  | 
|  6050     List<MethodElement> methods = holder.methods; |  6223     List<MethodElement> methods = holder.methods; | 
|  6051     expect(methods, hasLength(1)); |  6224     expect(methods, hasLength(1)); | 
|  6052     MethodElement method = methods[0]; |  6225     MethodElement method = methods[0]; | 
|  6053     expect(method, isNotNull); |  6226     expect(method, isNotNull); | 
 |  6227     expect(method.hasImplicitReturnType, isTrue); | 
|  6054     expect(method.name, methodName); |  6228     expect(method.name, methodName); | 
|  6055     expect(method.functions, hasLength(0)); |  6229     expect(method.functions, hasLength(0)); | 
|  6056     expect(method.labels, hasLength(0)); |  6230     expect(method.labels, hasLength(0)); | 
|  6057     expect(method.localVariables, hasLength(0)); |  6231     expect(method.localVariables, hasLength(0)); | 
|  6058     expect(method.parameters, hasLength(0)); |  6232     expect(method.parameters, hasLength(0)); | 
|  6059     expect(method.typeParameters, hasLength(1)); |  6233     expect(method.typeParameters, hasLength(1)); | 
|  6060     expect(method.isAbstract, isFalse); |  6234     expect(method.isAbstract, isFalse); | 
|  6061     expect(method.isExternal, isFalse); |  6235     expect(method.isExternal, isFalse); | 
|  6062     expect(method.isStatic, isFalse); |  6236     expect(method.isStatic, isFalse); | 
|  6063     expect(method.isSynthetic, isFalse); |  6237     expect(method.isSynthetic, isFalse); | 
|  6064   } |  6238   } | 
|  6065  |  6239  | 
|  6066   void test_visitMethodDeclaration_withMembers() { |  6240   void test_visitMethodDeclaration_withMembers() { | 
 |  6241     // m(p) { var v; try { l: return; } catch (e) {} } | 
|  6067     ElementHolder holder = new ElementHolder(); |  6242     ElementHolder holder = new ElementHolder(); | 
|  6068     ElementBuilder builder = new ElementBuilder(holder); |  6243     ElementBuilder builder = new ElementBuilder(holder); | 
|  6069     String methodName = "m"; |  6244     String methodName = "m"; | 
|  6070     String parameterName = "p"; |  6245     String parameterName = "p"; | 
|  6071     String localVariableName = "v"; |  6246     String localVariableName = "v"; | 
|  6072     String labelName = "l"; |  6247     String labelName = "l"; | 
|  6073     String exceptionParameterName = "e"; |  6248     String exceptionParameterName = "e"; | 
|  6074     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( |  6249     MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2( | 
|  6075         null, |  6250         null, | 
|  6076         null, |  6251         null, | 
|  6077         null, |  6252         null, | 
|  6078         null, |  6253         null, | 
|  6079         AstFactory.identifier3(methodName), |  6254         AstFactory.identifier3(methodName), | 
|  6080         AstFactory.formalParameterList( |  6255         AstFactory.formalParameterList( | 
|  6081             [AstFactory.simpleFormalParameter3(parameterName)]), |  6256             [AstFactory.simpleFormalParameter3(parameterName)]), | 
|  6082         AstFactory.blockFunctionBody2([ |  6257         AstFactory.blockFunctionBody2([ | 
|  6083           AstFactory.variableDeclarationStatement2( |  6258           AstFactory.variableDeclarationStatement2( | 
|  6084               Keyword.VAR, [AstFactory.variableDeclaration(localVariableName)]), |  6259               Keyword.VAR, [AstFactory.variableDeclaration(localVariableName)]), | 
|  6085           AstFactory.tryStatement2( |  6260           AstFactory.tryStatement2( | 
|  6086               AstFactory.block([ |  6261               AstFactory.block([ | 
|  6087                 AstFactory.labeledStatement([AstFactory.label2(labelName)], |  6262                 AstFactory.labeledStatement([AstFactory.label2(labelName)], | 
|  6088                     AstFactory.returnStatement()) |  6263                     AstFactory.returnStatement()) | 
|  6089               ]), |  6264               ]), | 
|  6090               [AstFactory.catchClause(exceptionParameterName)]) |  6265               [AstFactory.catchClause(exceptionParameterName)]) | 
|  6091         ])); |  6266         ])); | 
|  6092     methodDeclaration.accept(builder); |  6267     methodDeclaration.accept(builder); | 
 |  6268  | 
|  6093     List<MethodElement> methods = holder.methods; |  6269     List<MethodElement> methods = holder.methods; | 
|  6094     expect(methods, hasLength(1)); |  6270     expect(methods, hasLength(1)); | 
|  6095     MethodElement method = methods[0]; |  6271     MethodElement method = methods[0]; | 
|  6096     expect(method, isNotNull); |  6272     expect(method, isNotNull); | 
 |  6273     expect(method.hasImplicitReturnType, isTrue); | 
|  6097     expect(method.name, methodName); |  6274     expect(method.name, methodName); | 
|  6098     expect(method.typeParameters, hasLength(0)); |  6275     expect(method.typeParameters, hasLength(0)); | 
|  6099     expect(method.isAbstract, isFalse); |  6276     expect(method.isAbstract, isFalse); | 
|  6100     expect(method.isExternal, isFalse); |  6277     expect(method.isExternal, isFalse); | 
|  6101     expect(method.isStatic, isFalse); |  6278     expect(method.isStatic, isFalse); | 
|  6102     expect(method.isSynthetic, isFalse); |  6279     expect(method.isSynthetic, isFalse); | 
|  6103     List<VariableElement> parameters = method.parameters; |  6280     List<VariableElement> parameters = method.parameters; | 
|  6104     expect(parameters, hasLength(1)); |  6281     expect(parameters, hasLength(1)); | 
|  6105     VariableElement parameter = parameters[0]; |  6282     VariableElement parameter = parameters[0]; | 
|  6106     expect(parameter, isNotNull); |  6283     expect(parameter, isNotNull); | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  6146       SourceRange visibleRange = parameter.visibleRange; |  6323       SourceRange visibleRange = parameter.visibleRange; | 
|  6147       expect(100, visibleRange.offset); |  6324       expect(100, visibleRange.offset); | 
|  6148       expect(110, visibleRange.end); |  6325       expect(110, visibleRange.end); | 
|  6149     } |  6326     } | 
|  6150     expect(parameter.defaultValueCode, "42"); |  6327     expect(parameter.defaultValueCode, "42"); | 
|  6151     FunctionElement initializer = parameter.initializer; |  6328     FunctionElement initializer = parameter.initializer; | 
|  6152     expect(initializer, isNotNull); |  6329     expect(initializer, isNotNull); | 
|  6153     expect(initializer.isSynthetic, isTrue); |  6330     expect(initializer.isSynthetic, isTrue); | 
|  6154   } |  6331   } | 
|  6155  |  6332  | 
|  6156   void test_visitSimpleFormalParameter() { |  6333   void test_visitSimpleFormalParameter_noType() { | 
 |  6334     // p | 
|  6157     ElementHolder holder = new ElementHolder(); |  6335     ElementHolder holder = new ElementHolder(); | 
|  6158     ElementBuilder builder = new ElementBuilder(holder); |  6336     ElementBuilder builder = new ElementBuilder(holder); | 
|  6159     String parameterName = "p"; |  6337     String parameterName = "p"; | 
|  6160     SimpleFormalParameter formalParameter = |  6338     SimpleFormalParameter formalParameter = | 
|  6161         AstFactory.simpleFormalParameter3(parameterName); |  6339         AstFactory.simpleFormalParameter3(parameterName); | 
|  6162     _useParameterInMethod(formalParameter, 100, 110); |  6340     _useParameterInMethod(formalParameter, 100, 110); | 
|  6163     formalParameter.accept(builder); |  6341     formalParameter.accept(builder); | 
|  6164     List<ParameterElement> parameters = holder.parameters; |  6342     List<ParameterElement> parameters = holder.parameters; | 
|  6165     expect(parameters, hasLength(1)); |  6343     expect(parameters, hasLength(1)); | 
|  6166     ParameterElement parameter = parameters[0]; |  6344     ParameterElement parameter = parameters[0]; | 
|  6167     expect(parameter, isNotNull); |  6345     expect(parameter, isNotNull); | 
|  6168     expect(parameter.name, parameterName); |  6346     expect(parameter.hasImplicitType, isTrue); | 
|  6169     expect(parameter.initializer, isNull); |  6347     expect(parameter.initializer, isNull); | 
|  6170     expect(parameter.isConst, isFalse); |  6348     expect(parameter.isConst, isFalse); | 
|  6171     expect(parameter.isFinal, isFalse); |  6349     expect(parameter.isFinal, isFalse); | 
|  6172     expect(parameter.isSynthetic, isFalse); |  6350     expect(parameter.isSynthetic, isFalse); | 
 |  6351     expect(parameter.name, parameterName); | 
|  6173     expect(parameter.parameterKind, ParameterKind.REQUIRED); |  6352     expect(parameter.parameterKind, ParameterKind.REQUIRED); | 
|  6174     { |  6353     { | 
|  6175       SourceRange visibleRange = parameter.visibleRange; |  6354       SourceRange visibleRange = parameter.visibleRange; | 
 |  6355       expect(100, visibleRange.offset); | 
 |  6356       expect(110, visibleRange.end); | 
 |  6357     } | 
 |  6358   } | 
 |  6359  | 
 |  6360   void test_visitSimpleFormalParameter_type() { | 
 |  6361     // T p | 
 |  6362     ElementHolder holder = new ElementHolder(); | 
 |  6363     ElementBuilder builder = new ElementBuilder(holder); | 
 |  6364     String parameterName = "p"; | 
 |  6365     SimpleFormalParameter formalParameter = AstFactory.simpleFormalParameter4( | 
 |  6366         AstFactory.typeName4('T'), parameterName); | 
 |  6367     _useParameterInMethod(formalParameter, 100, 110); | 
 |  6368     formalParameter.accept(builder); | 
 |  6369     List<ParameterElement> parameters = holder.parameters; | 
 |  6370     expect(parameters, hasLength(1)); | 
 |  6371     ParameterElement parameter = parameters[0]; | 
 |  6372     expect(parameter, isNotNull); | 
 |  6373     expect(parameter.hasImplicitType, isFalse); | 
 |  6374     expect(parameter.initializer, isNull); | 
 |  6375     expect(parameter.isConst, isFalse); | 
 |  6376     expect(parameter.isFinal, isFalse); | 
 |  6377     expect(parameter.isSynthetic, isFalse); | 
 |  6378     expect(parameter.name, parameterName); | 
 |  6379     expect(parameter.parameterKind, ParameterKind.REQUIRED); | 
 |  6380     { | 
 |  6381       SourceRange visibleRange = parameter.visibleRange; | 
|  6176       expect(100, visibleRange.offset); |  6382       expect(100, visibleRange.offset); | 
|  6177       expect(110, visibleRange.end); |  6383       expect(110, visibleRange.end); | 
|  6178     } |  6384     } | 
|  6179   } |  6385   } | 
|  6180  |  6386  | 
|  6181   void test_visitTypeAlias_minimal() { |  6387   void test_visitTypeAlias_minimal() { | 
|  6182     ElementHolder holder = new ElementHolder(); |  6388     ElementHolder holder = new ElementHolder(); | 
|  6183     ElementBuilder builder = new ElementBuilder(holder); |  6389     ElementBuilder builder = new ElementBuilder(holder); | 
|  6184     String aliasName = "F"; |  6390     String aliasName = "F"; | 
|  6185     TypeAlias typeAlias = AstFactory.typeAlias(null, aliasName, null, null); |  6391     TypeAlias typeAlias = AstFactory.typeAlias(null, aliasName, null, null); | 
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  6281         AstFactory.variableDeclarationStatement2(null, [variable]); |  6487         AstFactory.variableDeclarationStatement2(null, [variable]); | 
|  6282     ConstructorDeclaration constructor = AstFactory.constructorDeclaration2( |  6488     ConstructorDeclaration constructor = AstFactory.constructorDeclaration2( | 
|  6283         null, |  6489         null, | 
|  6284         null, |  6490         null, | 
|  6285         AstFactory.identifier3("C"), |  6491         AstFactory.identifier3("C"), | 
|  6286         "C", |  6492         "C", | 
|  6287         AstFactory.formalParameterList(), |  6493         AstFactory.formalParameterList(), | 
|  6288         null, |  6494         null, | 
|  6289         AstFactory.blockFunctionBody2([statement])); |  6495         AstFactory.blockFunctionBody2([statement])); | 
|  6290     constructor.accept(builder); |  6496     constructor.accept(builder); | 
 |  6497  | 
|  6291     List<ConstructorElement> constructors = holder.constructors; |  6498     List<ConstructorElement> constructors = holder.constructors; | 
|  6292     expect(constructors, hasLength(1)); |  6499     expect(constructors, hasLength(1)); | 
|  6293     List<LocalVariableElement> variableElements = |  6500     List<LocalVariableElement> variableElements = | 
|  6294         constructors[0].localVariables; |  6501         constructors[0].localVariables; | 
|  6295     expect(variableElements, hasLength(1)); |  6502     expect(variableElements, hasLength(1)); | 
|  6296     LocalVariableElement variableElement = variableElements[0]; |  6503     LocalVariableElement variableElement = variableElements[0]; | 
 |  6504     expect(variableElement.hasImplicitType, isTrue); | 
|  6297     expect(variableElement.name, variableName); |  6505     expect(variableElement.name, variableName); | 
|  6298   } |  6506   } | 
|  6299  |  6507  | 
|  6300   void test_visitVariableDeclaration_inMethod() { |  6508   void test_visitVariableDeclaration_inMethod() { | 
|  6301     ElementHolder holder = new ElementHolder(); |  6509     ElementHolder holder = new ElementHolder(); | 
|  6302     ElementBuilder builder = new ElementBuilder(holder); |  6510     ElementBuilder builder = new ElementBuilder(holder); | 
|  6303     // |  6511     // | 
|  6304     // m() {var v;} |  6512     // m() {T v;} | 
|  6305     // |  6513     // | 
|  6306     String variableName = "v"; |  6514     String variableName = "v"; | 
|  6307     VariableDeclaration variable = |  6515     VariableDeclaration variable = | 
|  6308         AstFactory.variableDeclaration2(variableName, null); |  6516         AstFactory.variableDeclaration2(variableName, null); | 
|  6309     Statement statement = |  6517     Statement statement = AstFactory.variableDeclarationStatement( | 
|  6310         AstFactory.variableDeclarationStatement2(null, [variable]); |  6518         null, AstFactory.typeName4('T'), [variable]); | 
|  6311     MethodDeclaration constructor = AstFactory.methodDeclaration2( |  6519     MethodDeclaration method = AstFactory.methodDeclaration2( | 
|  6312         null, |  6520         null, | 
|  6313         null, |  6521         null, | 
|  6314         null, |  6522         null, | 
|  6315         null, |  6523         null, | 
|  6316         AstFactory.identifier3("m"), |  6524         AstFactory.identifier3("m"), | 
|  6317         AstFactory.formalParameterList(), |  6525         AstFactory.formalParameterList(), | 
|  6318         AstFactory.blockFunctionBody2([statement])); |  6526         AstFactory.blockFunctionBody2([statement])); | 
|  6319     constructor.accept(builder); |  6527     method.accept(builder); | 
 |  6528  | 
|  6320     List<MethodElement> methods = holder.methods; |  6529     List<MethodElement> methods = holder.methods; | 
|  6321     expect(methods, hasLength(1)); |  6530     expect(methods, hasLength(1)); | 
|  6322     List<LocalVariableElement> variableElements = methods[0].localVariables; |  6531     List<LocalVariableElement> variableElements = methods[0].localVariables; | 
|  6323     expect(variableElements, hasLength(1)); |  6532     expect(variableElements, hasLength(1)); | 
|  6324     LocalVariableElement variableElement = variableElements[0]; |  6533     LocalVariableElement variableElement = variableElements[0]; | 
 |  6534     expect(variableElement.hasImplicitType, isFalse); | 
|  6325     expect(variableElement.name, variableName); |  6535     expect(variableElement.name, variableName); | 
|  6326   } |  6536   } | 
|  6327  |  6537  | 
|  6328   void test_visitVariableDeclaration_localNestedInField() { |  6538   void test_visitVariableDeclaration_localNestedInFunction() { | 
|  6329     ElementHolder holder = new ElementHolder(); |  6539     ElementHolder holder = new ElementHolder(); | 
|  6330     ElementBuilder builder = new ElementBuilder(holder); |  6540     ElementBuilder builder = new ElementBuilder(holder); | 
|  6331     // |  6541     // | 
|  6332     // var f = () {var v;} |  6542     // var f = () {var v;}; | 
|  6333     // |  6543     // | 
|  6334     String variableName = "v"; |  6544     String variableName = "v"; | 
|  6335     VariableDeclaration variable = |  6545     VariableDeclaration variable = | 
|  6336         AstFactory.variableDeclaration2(variableName, null); |  6546         AstFactory.variableDeclaration2(variableName, null); | 
|  6337     Statement statement = |  6547     Statement statement = | 
|  6338         AstFactory.variableDeclarationStatement2(null, [variable]); |  6548         AstFactory.variableDeclarationStatement2(null, [variable]); | 
|  6339     Expression initializer = AstFactory.functionExpression2( |  6549     Expression initializer = AstFactory.functionExpression2( | 
|  6340         AstFactory.formalParameterList(), |  6550         AstFactory.formalParameterList(), | 
|  6341         AstFactory.blockFunctionBody2([statement])); |  6551         AstFactory.blockFunctionBody2([statement])); | 
|  6342     String fieldName = "f"; |  6552     String fieldName = "f"; | 
|  6343     VariableDeclaration field = |  6553     VariableDeclaration field = | 
|  6344         AstFactory.variableDeclaration2(fieldName, initializer); |  6554         AstFactory.variableDeclaration2(fieldName, initializer); | 
|  6345     FieldDeclaration fieldDeclaration = |  6555     FieldDeclaration fieldDeclaration = | 
|  6346         AstFactory.fieldDeclaration2(false, null, [field]); |  6556         AstFactory.fieldDeclaration2(false, null, [field]); | 
|  6347     fieldDeclaration.accept(builder); |  6557     fieldDeclaration.accept(builder); | 
 |  6558  | 
|  6348     List<FieldElement> variables = holder.fields; |  6559     List<FieldElement> variables = holder.fields; | 
|  6349     expect(variables, hasLength(1)); |  6560     expect(variables, hasLength(1)); | 
|  6350     FieldElement fieldElement = variables[0]; |  6561     FieldElement fieldElement = variables[0]; | 
|  6351     expect(fieldElement, isNotNull); |  6562     expect(fieldElement, isNotNull); | 
|  6352     FunctionElement initializerElement = fieldElement.initializer; |  6563     FunctionElement initializerElement = fieldElement.initializer; | 
|  6353     expect(initializerElement, isNotNull); |  6564     expect(initializerElement, isNotNull); | 
|  6354     List<FunctionElement> functionElements = initializerElement.functions; |  6565     List<FunctionElement> functionElements = initializerElement.functions; | 
|  6355     expect(functionElements, hasLength(1)); |  6566     expect(functionElements, hasLength(1)); | 
|  6356     List<LocalVariableElement> variableElements = |  6567     List<LocalVariableElement> variableElements = | 
|  6357         functionElements[0].localVariables; |  6568         functionElements[0].localVariables; | 
|  6358     expect(variableElements, hasLength(1)); |  6569     expect(variableElements, hasLength(1)); | 
|  6359     LocalVariableElement variableElement = variableElements[0]; |  6570     LocalVariableElement variableElement = variableElements[0]; | 
|  6360     expect(variableElement.name, variableName); |  6571     expect(variableElement.hasImplicitType, isTrue); | 
|  6361     expect(variableElement.isConst, isFalse); |  6572     expect(variableElement.isConst, isFalse); | 
|  6362     expect(variableElement.isFinal, isFalse); |  6573     expect(variableElement.isFinal, isFalse); | 
|  6363     expect(variableElement.isSynthetic, isFalse); |  6574     expect(variableElement.isSynthetic, isFalse); | 
 |  6575     expect(variableElement.name, variableName); | 
|  6364   } |  6576   } | 
|  6365  |  6577  | 
|  6366   void test_visitVariableDeclaration_noInitializer() { |  6578   void test_visitVariableDeclaration_noInitializer() { | 
 |  6579     // var v; | 
|  6367     ElementHolder holder = new ElementHolder(); |  6580     ElementHolder holder = new ElementHolder(); | 
|  6368     ElementBuilder builder = new ElementBuilder(holder); |  6581     ElementBuilder builder = new ElementBuilder(holder); | 
|  6369     String variableName = "v"; |  6582     String variableName = "v"; | 
|  6370     VariableDeclaration variableDeclaration = |  6583     VariableDeclaration variableDeclaration = | 
|  6371         AstFactory.variableDeclaration2(variableName, null); |  6584         AstFactory.variableDeclaration2(variableName, null); | 
|  6372     AstFactory.variableDeclarationList2(null, [variableDeclaration]); |  6585     AstFactory.variableDeclarationList2(null, [variableDeclaration]); | 
|  6373     variableDeclaration.accept(builder); |  6586     variableDeclaration.accept(builder); | 
 |  6587  | 
|  6374     List<TopLevelVariableElement> variables = holder.topLevelVariables; |  6588     List<TopLevelVariableElement> variables = holder.topLevelVariables; | 
|  6375     expect(variables, hasLength(1)); |  6589     expect(variables, hasLength(1)); | 
|  6376     TopLevelVariableElement variable = variables[0]; |  6590     TopLevelVariableElement variable = variables[0]; | 
|  6377     expect(variable, isNotNull); |  6591     expect(variable, isNotNull); | 
 |  6592     expect(variable.hasImplicitType, isTrue); | 
|  6378     expect(variable.initializer, isNull); |  6593     expect(variable.initializer, isNull); | 
|  6379     expect(variable.name, variableName); |  6594     expect(variable.name, variableName); | 
|  6380     expect(variable.isConst, isFalse); |  6595     expect(variable.isConst, isFalse); | 
|  6381     expect(variable.isFinal, isFalse); |  6596     expect(variable.isFinal, isFalse); | 
|  6382     expect(variable.isSynthetic, isFalse); |  6597     expect(variable.isSynthetic, isFalse); | 
|  6383     expect(variable.getter, isNotNull); |  6598     expect(variable.getter, isNotNull); | 
|  6384     expect(variable.setter, isNotNull); |  6599     expect(variable.setter, isNotNull); | 
|  6385   } |  6600   } | 
|  6386  |  6601  | 
|  6387   void test_visitVariableDeclaration_top_const_hasInitializer() { |  6602   void test_visitVariableDeclaration_top_const_hasInitializer() { | 
 |  6603     // const v = 42; | 
|  6388     ElementHolder holder = new ElementHolder(); |  6604     ElementHolder holder = new ElementHolder(); | 
|  6389     ElementBuilder builder = new ElementBuilder(holder); |  6605     ElementBuilder builder = new ElementBuilder(holder); | 
|  6390     String variableName = "v"; |  6606     String variableName = "v"; | 
|  6391     VariableDeclaration variableDeclaration = |  6607     VariableDeclaration variableDeclaration = | 
|  6392         AstFactory.variableDeclaration2(variableName, AstFactory.integer(42)); |  6608         AstFactory.variableDeclaration2(variableName, AstFactory.integer(42)); | 
|  6393     AstFactory.variableDeclarationList2(Keyword.CONST, [variableDeclaration]); |  6609     AstFactory.variableDeclarationList2(Keyword.CONST, [variableDeclaration]); | 
|  6394     variableDeclaration.accept(builder); |  6610     variableDeclaration.accept(builder); | 
 |  6611  | 
|  6395     List<TopLevelVariableElement> variables = holder.topLevelVariables; |  6612     List<TopLevelVariableElement> variables = holder.topLevelVariables; | 
|  6396     expect(variables, hasLength(1)); |  6613     expect(variables, hasLength(1)); | 
|  6397     TopLevelVariableElement variable = variables[0]; |  6614     TopLevelVariableElement variable = variables[0]; | 
|  6398     expect(variable, new isInstanceOf<ConstTopLevelVariableElementImpl>()); |  6615     expect(variable, new isInstanceOf<ConstTopLevelVariableElementImpl>()); | 
|  6399     expect(variable.initializer, isNotNull); |  6616     expect(variable.initializer, isNotNull); | 
|  6400     expect(variable.name, variableName); |  6617     expect(variable.name, variableName); | 
 |  6618     expect(variable.hasImplicitType, isTrue); | 
|  6401     expect(variable.isConst, isTrue); |  6619     expect(variable.isConst, isTrue); | 
|  6402     expect(variable.isFinal, isFalse); |  6620     expect(variable.isFinal, isFalse); | 
|  6403     expect(variable.isSynthetic, isFalse); |  6621     expect(variable.isSynthetic, isFalse); | 
|  6404     expect(variable.getter, isNotNull); |  6622     expect(variable.getter, isNotNull); | 
|  6405     expect(variable.setter, isNull); |  6623     expect(variable.setter, isNull); | 
|  6406   } |  6624   } | 
|  6407  |  6625  | 
|  6408   void test_visitVariableDeclaration_top_final() { |  6626   void test_visitVariableDeclaration_top_final() { | 
 |  6627     // final v; | 
|  6409     ElementHolder holder = new ElementHolder(); |  6628     ElementHolder holder = new ElementHolder(); | 
|  6410     ElementBuilder builder = new ElementBuilder(holder); |  6629     ElementBuilder builder = new ElementBuilder(holder); | 
|  6411     String variableName = "v"; |  6630     String variableName = "v"; | 
|  6412     VariableDeclaration variableDeclaration = |  6631     VariableDeclaration variableDeclaration = | 
|  6413         AstFactory.variableDeclaration2(variableName, null); |  6632         AstFactory.variableDeclaration2(variableName, null); | 
|  6414     AstFactory.variableDeclarationList2(Keyword.FINAL, [variableDeclaration]); |  6633     AstFactory.variableDeclarationList2(Keyword.FINAL, [variableDeclaration]); | 
|  6415     variableDeclaration.accept(builder); |  6634     variableDeclaration.accept(builder); | 
|  6416     List<TopLevelVariableElement> variables = holder.topLevelVariables; |  6635     List<TopLevelVariableElement> variables = holder.topLevelVariables; | 
|  6417     expect(variables, hasLength(1)); |  6636     expect(variables, hasLength(1)); | 
|  6418     TopLevelVariableElement variable = variables[0]; |  6637     TopLevelVariableElement variable = variables[0]; | 
|  6419     expect(variable, isNotNull); |  6638     expect(variable, isNotNull); | 
 |  6639     expect(variable.hasImplicitType, isTrue); | 
|  6420     expect(variable.initializer, isNull); |  6640     expect(variable.initializer, isNull); | 
|  6421     expect(variable.name, variableName); |  6641     expect(variable.name, variableName); | 
|  6422     expect(variable.isConst, isFalse); |  6642     expect(variable.isConst, isFalse); | 
|  6423     expect(variable.isFinal, isTrue); |  6643     expect(variable.isFinal, isTrue); | 
|  6424     expect(variable.isSynthetic, isFalse); |  6644     expect(variable.isSynthetic, isFalse); | 
|  6425     expect(variable.getter, isNotNull); |  6645     expect(variable.getter, isNotNull); | 
|  6426     expect(variable.setter, isNull); |  6646     expect(variable.setter, isNull); | 
|  6427   } |  6647   } | 
|  6428  |  6648  | 
|  6429   void _useParameterInMethod( |  6649   void _useParameterInMethod( | 
| (...skipping 2556 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  8986     if (_expectedExternalScriptName == null) { |  9206     if (_expectedExternalScriptName == null) { | 
|  8987       expect(scriptSource, isNull, reason: "script $scriptIndex"); |  9207       expect(scriptSource, isNull, reason: "script $scriptIndex"); | 
|  8988     } else { |  9208     } else { | 
|  8989       expect(scriptSource, isNotNull, reason: "script $scriptIndex"); |  9209       expect(scriptSource, isNotNull, reason: "script $scriptIndex"); | 
|  8990       String actualExternalScriptName = scriptSource.shortName; |  9210       String actualExternalScriptName = scriptSource.shortName; | 
|  8991       expect(actualExternalScriptName, _expectedExternalScriptName, |  9211       expect(actualExternalScriptName, _expectedExternalScriptName, | 
|  8992           reason: "script $scriptIndex"); |  9212           reason: "script $scriptIndex"); | 
|  8993     } |  9213     } | 
|  8994   } |  9214   } | 
|  8995 } |  9215 } | 
| OLD | NEW |