| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 fasta.builder_accessors; | 5 library fasta.builder_accessors; |
| 6 | 6 |
| 7 export 'frontend_accessors.dart' show | 7 export 'frontend_accessors.dart' show |
| 8 wrapInvalid; | 8 wrapInvalid; |
| 9 | 9 |
| 10 import 'frontend_accessors.dart' show | 10 import 'frontend_accessors.dart' show |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 return receiver.buildPropertyAccess(this, isNullAware); | 333 return receiver.buildPropertyAccess(this, isNullAware); |
| 334 } | 334 } |
| 335 if (receiver is PrefixBuilder) { | 335 if (receiver is PrefixBuilder) { |
| 336 PrefixBuilder prefix = receiver; | 336 PrefixBuilder prefix = receiver; |
| 337 receiver = helper.builderToFirstExpression( | 337 receiver = helper.builderToFirstExpression( |
| 338 prefix.exports[name.name], "${prefix.name}.${name.name}", charOffset); | 338 prefix.exports[name.name], "${prefix.name}.${name.name}", charOffset); |
| 339 return helper.finishSend(receiver, arguments, charOffset); | 339 return helper.finishSend(receiver, arguments, charOffset); |
| 340 } | 340 } |
| 341 Expression result; | 341 Expression result; |
| 342 if (receiver is KernelClassBuilder) { | 342 if (receiver is KernelClassBuilder) { |
| 343 Builder builder = receiver.findStaticBuilder(name.name); | 343 Builder builder = receiver.findStaticBuilder(name.name, charOffset, uri); |
| 344 if (builder == null) { | 344 if (builder == null) { |
| 345 return buildThrowNoSuchMethodError(arguments); | 345 return buildThrowNoSuchMethodError(arguments); |
| 346 } | 346 } |
| 347 if (builder.hasProblem) { | 347 if (builder.hasProblem) { |
| 348 result = helper.buildProblemExpression(builder, name.name); | 348 result = helper.buildProblemExpression(builder, name.name); |
| 349 } else { | 349 } else { |
| 350 Member target = builder.target; | 350 Member target = builder.target; |
| 351 if (target != null) { | 351 if (target != null) { |
| 352 if (target is Field) { | 352 if (target is Field) { |
| 353 result = buildMethodInvocation(new StaticGet(target), | 353 result = buildMethodInvocation(new StaticGet(target), |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 } | 415 } |
| 416 if (receiver is BuilderAccessor) { | 416 if (receiver is BuilderAccessor) { |
| 417 return receiver.buildPropertyAccess(this, isNullAware); | 417 return receiver.buildPropertyAccess(this, isNullAware); |
| 418 } | 418 } |
| 419 if (receiver is PrefixBuilder) { | 419 if (receiver is PrefixBuilder) { |
| 420 PrefixBuilder prefix = receiver; | 420 PrefixBuilder prefix = receiver; |
| 421 return helper.builderToFirstExpression( | 421 return helper.builderToFirstExpression( |
| 422 prefix.exports[name.name], name.name, charOffset); | 422 prefix.exports[name.name], name.name, charOffset); |
| 423 } | 423 } |
| 424 if (receiver is KernelClassBuilder) { | 424 if (receiver is KernelClassBuilder) { |
| 425 Builder builder = receiver.findStaticBuilder(name.name); | 425 Builder builder = receiver.findStaticBuilder(name.name, charOffset, uri); |
| 426 Member getter = builder?.target; | 426 Member getter = builder?.target; |
| 427 Member setter; | 427 Member setter; |
| 428 if (builder == null) { | 428 if (builder == null) { |
| 429 builder = receiver.findStaticBuilder(name.name, isSetter: true); | 429 builder = receiver.findStaticBuilder( |
| 430 name.name, charOffset, uri, isSetter: true); |
| 430 if (builder == null) { | 431 if (builder == null) { |
| 431 return buildThrowNoSuchMethodError(null); | 432 return buildThrowNoSuchMethodError(null); |
| 432 } | 433 } |
| 433 } | 434 } |
| 434 if (builder.hasProblem) { | 435 if (builder.hasProblem) { |
| 435 return helper.buildProblemExpression(builder, name.name) | 436 return helper.buildProblemExpression(builder, name.name) |
| 436 ..fileOffset = charOffset; | 437 ..fileOffset = charOffset; |
| 437 } | 438 } |
| 438 if (getter is Field) { | 439 if (getter is Field) { |
| 439 if (!getter.isFinal && !getter.isConst) { | 440 if (!getter.isFinal && !getter.isConst) { |
| 440 setter = getter; | 441 setter = getter; |
| 441 } | 442 } |
| 442 } else if (getter is Procedure) { | 443 } else if (getter is Procedure) { |
| 443 if (getter.isGetter) { | 444 if (getter.isGetter) { |
| 444 builder = receiver.findStaticBuilder(name.name, isSetter: true); | 445 builder = receiver.findStaticBuilder( |
| 446 name.name, charOffset, uri, isSetter: true); |
| 445 if (builder != null && !builder.hasProblem) { | 447 if (builder != null && !builder.hasProblem) { |
| 446 setter = builder.target; | 448 setter = builder.target; |
| 447 } | 449 } |
| 448 } | 450 } |
| 449 } | 451 } |
| 450 if (getter == null) { | 452 if (getter == null) { |
| 451 return internalError("no getter for $name"); | 453 return internalError("no getter for $name"); |
| 452 } | 454 } |
| 453 return new StaticAccessor(helper, charOffset, getter, setter); | 455 return new StaticAccessor(helper, charOffset, getter, setter); |
| 454 } | 456 } |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 721 buildIsNull(new VariableGet(variable)), | 723 buildIsNull(new VariableGet(variable)), |
| 722 new NullLiteral(), | 724 new NullLiteral(), |
| 723 new MethodInvocation(new VariableGet(variable), name, arguments) | 725 new MethodInvocation(new VariableGet(variable), name, arguments) |
| 724 ..fileOffset = charOffset, | 726 ..fileOffset = charOffset, |
| 725 const DynamicType())); | 727 const DynamicType())); |
| 726 } else { | 728 } else { |
| 727 return new MethodInvocation(receiver, name, arguments) | 729 return new MethodInvocation(receiver, name, arguments) |
| 728 ..fileOffset = charOffset; | 730 ..fileOffset = charOffset; |
| 729 } | 731 } |
| 730 } | 732 } |
| OLD | NEW |