@@ -630,6 +630,16 @@ class _ReferenceVisitor extends ScopedAstVisitor {
630
630
super .visitMixinRule (node);
631
631
var member = MemberDeclaration (node);
632
632
_declarationSources[member] = CurrentSource (_currentUrl);
633
+ _mixins.forEach ((declaredMixins, reference) => {
634
+ if (declaredMixins.name == node.name &&
635
+ reference.sourceUrl != _currentUrl)
636
+ {
637
+ throw new MigrationException (
638
+ 'Mixin `${node .name }` has been previously declared' +
639
+ ' in ${reference .sourceUrl .pathSegments .last } and is' +
640
+ ' later on defined in ${_currentUrl .pathSegments .last }.' )
641
+ }
642
+ });
633
643
_registerLibraryUrl (member);
634
644
}
635
645
@@ -660,6 +670,16 @@ class _ReferenceVisitor extends ScopedAstVisitor {
660
670
super .visitFunctionRule (node);
661
671
var member = MemberDeclaration (node);
662
672
_declarationSources[member] = CurrentSource (_currentUrl);
673
+ _functions.forEach ((declaredFunction, reference) => {
674
+ if (declaredFunction.name == node.name &&
675
+ reference.sourceUrl != _currentUrl)
676
+ {
677
+ throw new MigrationException (
678
+ 'Function `${node .name }` has been previously declared' +
679
+ ' in ${reference .sourceUrl .pathSegments .last } and is' +
680
+ ' later on defined in ${_currentUrl .pathSegments .last }.' )
681
+ }
682
+ });
663
683
_registerLibraryUrl (member);
664
684
}
665
685
0 commit comments