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