Skip to content

NoSuchMethod forwarder conflicts with a declared member for a canonical name #48402

Closed
@chloestefantsova

Description

@chloestefantsova

The following program makes the CFE crash:

abstract class I {
  String get member;
}

class A implements I {
  static String member = "member";

  dynamic noSuchMethod(Invocation i) => "foo";
}

The stack trace:

Unhandled exception:
root::file:///tmp/qwerty.dart::A::@getters::member is already bound to Reference to file:///tmp/qwerty.dart::A::@getters::member with node A.member (Field:6174), trying to bind to Reference to A.member with node A.member (Procedure:35005)
#0      CanonicalName.bindTo (package:kernel/canonical_name.dart:242:7)
#1      Class.computeCanonicalNames (package:kernel/ast.dart:1294:51)
#2      Library.computeCanonicalNames (package:kernel/ast.dart:517:14)
#3      Component.computeCanonicalNamesForLibrary (package:kernel/ast.dart:13679:13)
#4      BinaryPrinter.computeCanonicalNames (package:kernel/binary/ast_to_binary.dart:560:19)
#5      BinaryPrinter.writeComponentFile.<anonymous closure> (package:kernel/binary/ast_to_binary.dart:579:7)
#6      Timeline.timeSync (dart:developer/timeline.dart:163:22)
#7      BinaryPrinter.writeComponentFile (package:kernel/binary/ast_to_binary.dart:577:14)
#8      writeComponentToFile (package:front_end/src/fasta/kernel/utils.dart:77:13)

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions