| Index: pkg/kernel/lib/verifier.dart
|
| diff --git a/pkg/kernel/lib/verifier.dart b/pkg/kernel/lib/verifier.dart
|
| index 1a1b5ad606f82b05a9988524b00003cb8aecf4b1..41e23002fcf897628fc80a699ff522f3f399ffd3 100644
|
| --- a/pkg/kernel/lib/verifier.dart
|
| +++ b/pkg/kernel/lib/verifier.dart
|
| @@ -133,7 +133,18 @@ class VerifyingVisitor extends RecursiveVisitor {
|
| }
|
| }
|
|
|
| + void checkCanonicalName(CanonicalName name, LinkedNode definition) {
|
| + if (name == null) {
|
| + throw '$definition has no canonical name';
|
| + }
|
| + if (name.definition != definition) {
|
| + throw '$definition has name $name, but that is bound to '
|
| + '${name.definition}';
|
| + }
|
| + }
|
| +
|
| visitField(Field node) {
|
| + checkCanonicalName(node.canonicalName, node);
|
| currentMember = node;
|
| var oldParent = enterParent(node);
|
| classTypeParametersAreInScope = !node.isStatic;
|
| @@ -145,6 +156,7 @@ class VerifyingVisitor extends RecursiveVisitor {
|
| }
|
|
|
| visitProcedure(Procedure node) {
|
| + checkCanonicalName(node.canonicalName, node);
|
| currentMember = node;
|
| var oldParent = enterParent(node);
|
| classTypeParametersAreInScope = !node.isStatic;
|
| @@ -156,6 +168,7 @@ class VerifyingVisitor extends RecursiveVisitor {
|
| }
|
|
|
| visitConstructor(Constructor node) {
|
| + checkCanonicalName(node.canonicalName, node);
|
| currentMember = node;
|
| classTypeParametersAreInScope = true;
|
| // The constructor member needs special treatment due to parameters being
|
| @@ -173,6 +186,7 @@ class VerifyingVisitor extends RecursiveVisitor {
|
| }
|
|
|
| visitClass(Class node) {
|
| + checkCanonicalName(node.canonicalName, node);
|
| currentClass = node;
|
| declareTypeParameters(node.typeParameters);
|
| var oldParent = enterParent(node);
|
|
|