v.error(self, "Type error: cannot instantiate the formal type {recvtype}.")
return
end
+ else
+ if recvtype.mclass.kind == abstract_kind then
+ v.error(self, "Cannot instantiate abstract class {recvtype}.")
+ return
+ else if recvtype.mclass.kind == interface_kind then
+ v.error(self, "Cannot instantiate interface {recvtype}.")
+ return
+ end
end
var name: String
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+abstract class A
+
+end
+
+var x = new A
+
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+interface A
+
+end
+
+var x = new A
+
--- /dev/null
+base_error_new_abstract.nit:21,9--13: Cannot instantiate abstract class A.
--- /dev/null
+base_error_new_interface.nit:21,9--13: Cannot instantiate interface A.
-alt/error_needed_method_alt2.nit:47,10--27: Error: Method 'init' doesn't exists in Collection[Int].
+alt/error_needed_method_alt2.nit:47,10--27: Cannot instantiate interface Collection[Int].
alt/error_needed_method_alt2.nit:47,1--40: Type Error: Expected method 'iterator' in type Collection[Int]