Skip to content

Commit 1a3858a

Browse files
author
EnzeXing
committed
Adding warnings for selecting and assigning arrays
1 parent 04d8f2b commit 1a3858a

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

compiler/src/dotty/tools/dotc/transform/init/Objects.scala

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,10 @@ object Objects:
798798
report.warning("[Internal error] unexpected tree in selecting a function, fun = " + fun.code.show + Trace.show, fun.code)
799799
Bottom
800800

801+
case arr: OfArray =>
802+
report.warning("[Internal error] unexpected tree in selecting an array, array = " + arr.show + Trace.show, Trace.position)
803+
Bottom
804+
801805
case Bottom =>
802806
if field.isStaticObject then ObjectRef(field.moduleClass.asClass)
803807
else Bottom
@@ -818,6 +822,9 @@ object Objects:
818822
case fun: Fun =>
819823
report.warning("[Internal error] unexpected tree in assignment, fun = " + fun.code.show + Trace.show, Trace.position)
820824

825+
case arr: OfArray =>
826+
report.warning("[Internal error] unexpected tree in assignment, array = " + arr.show + Trace.show, Trace.position)
827+
821828
case Cold =>
822829
report.warning("Assigning to cold aliases is forbidden. Calling trace:\n" + Trace.show, Trace.position)
823830

@@ -854,7 +861,7 @@ object Objects:
854861
report.warning("[Internal error] unexpected outer in instantiating a class, outer = " + outer.show + ", class = " + klass.show + ", " + Trace.show, Trace.position)
855862
Bottom
856863

857-
case _: Ref | _ : Cold.type | _ : Bottom.type =>
864+
case outer: (Ref | Cold.type | Bottom.type) =>
858865
if klass == defn.ArrayClass then
859866
val arr = OfArray(State.currentObject, summon[Regions.Data])
860867
Heap.write(arr.addr, Bottom)
@@ -930,7 +937,7 @@ object Objects:
930937
case Cold =>
931938
report.warning("Calling cold by-name alias. Call trace: \n" + Trace.show, Trace.position)
932939
Bottom
933-
case _: ValueSet | _: Ref =>
940+
case _: ValueSet | _: Ref | _: OfArray =>
934941
report.warning("[Internal error] Unexpected by-name value " + value.show + ". Calling trace:\n" + Trace.show, Trace.position)
935942
Bottom
936943
else

project/Build.scala

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ object Build {
196196
"-deprecation",
197197
"-unchecked",
198198
//"-Wconf:cat=deprecation&msg=Unsafe:s", // example usage
199-
// "-Xfatal-warnings", // -Werror in modern usage
199+
"-Xfatal-warnings", // -Werror in modern usage
200200
"-encoding", "UTF8",
201201
"-language:implicitConversions",
202202
),
@@ -810,9 +810,6 @@ object Build {
810810
)
811811
},
812812

813-
// Note: bench/profiles/projects.yml should be updated accordingly.
814-
Compile / scalacOptions ++= Seq("-Yexplicit-nulls", "-Ysafe-init", "-Ysafe-init-global"),
815-
816813
repl := (Compile / console).value,
817814
Compile / console / scalacOptions := Nil, // reset so that we get stock REPL behaviour! E.g. avoid -unchecked being enabled
818815
)

0 commit comments

Comments
 (0)