@@ -750,4 +750,111 @@ class JSInteropTest extends DirectTest with TestHelpers {
750
750
751
751
}
752
752
753
+ @ Test
754
+ def scalaJSDefinedJSNameOverrideWarnings : Unit = {
755
+ """
756
+ @ScalaJSDefined
757
+ abstract class A extends js.Object {
758
+ def bar(): Int
759
+ }
760
+ @ScalaJSDefined
761
+ class B extends A {
762
+ override def bar() = 1
763
+ }
764
+ """ .hasNoWarns
765
+
766
+ """
767
+ @ScalaJSDefined
768
+ abstract class A extends js.Object {
769
+ @JSName("foo")
770
+ def bar(): Int
771
+ }
772
+ @ScalaJSDefined
773
+ class B extends A {
774
+ @JSName("foo")
775
+ override def bar() = 1
776
+ }
777
+ """ .hasNoWarns
778
+
779
+ """
780
+ @ScalaJSDefined
781
+ abstract class A extends js.Object {
782
+ @JSName("foo")
783
+ def bar(): Int
784
+ }
785
+ @ScalaJSDefined
786
+ class B extends A {
787
+ @JSName("baz")
788
+ override def bar() = 1
789
+ }
790
+ """ hasWarns
791
+ """
792
+ |newSource1.scala:13: warning: A Scala.js-defined JS class member is overriding another with a different exported name.
793
+ | override def bar() = 1
794
+ | ^
795
+ """
796
+
797
+ """
798
+ @ScalaJSDefined
799
+ abstract class A extends js.Object {
800
+ @JSName("foo")
801
+ def bar(): Int
802
+ }
803
+ @ScalaJSDefined
804
+ class B extends A {
805
+ override def bar() = 1
806
+ }
807
+ """ hasWarns
808
+ """
809
+ |newSource1.scala:12: warning: A Scala.js-defined JS class member is overriding another with a different exported name.
810
+ | override def bar() = 1
811
+ | ^
812
+ """
813
+
814
+ """
815
+ @ScalaJSDefined
816
+ abstract class A extends js.Object {
817
+ @JSName("foo")
818
+ def bar(): Object
819
+ }
820
+ @ScalaJSDefined
821
+ abstract class B extends A {
822
+ override def bar(): String
823
+ }
824
+ @ScalaJSDefined
825
+ class C extends B {
826
+ override def bar() = "1"
827
+ }
828
+ """ hasWarns
829
+ """
830
+ |newSource1.scala:12: warning: A Scala.js-defined JS class member is overriding another with a different exported name.
831
+ | override def bar(): String
832
+ | ^
833
+ """
834
+
835
+ """
836
+ @ScalaJSDefined
837
+ abstract class A extends js.Object {
838
+ def bar(): Object
839
+ }
840
+ @ScalaJSDefined
841
+ abstract class B extends A {
842
+ @JSName("foo")
843
+ override def bar(): String
844
+ }
845
+ @ScalaJSDefined
846
+ class C extends B {
847
+ override def bar() = "1"
848
+ }
849
+ """ hasWarns
850
+ """
851
+ |newSource1.scala:12: warning: A Scala.js-defined JS class member is overriding another with a different exported name.
852
+ | override def bar(): String
853
+ | ^
854
+ |newSource1.scala:16: warning: A Scala.js-defined JS class member is overriding another with a different exported name.
855
+ | override def bar() = "1"
856
+ | ^
857
+ """
858
+ }
859
+
753
860
}
0 commit comments