- changed status to resolved
Missing argument for format specifier in error message
Issue #228
resolved
ExtendJ 8.0.1-228-gb4d4e4a Java SE 8
In creating an error message for incompatible return types in inherited abstract methods, there is a missing argument to the errorf method, leading to exception when reporting an error.
Test case:
// .result: COMPILE_FAIL public abstract class Test extends Foo implements Bar { // Inherits two return-type incompatible methods _$(). } interface Bar { int _$(); } abstract class Foo { abstract public void _$(); }
Expected result: a nice error message about inheriting two incompatible method declarations. Something like this (javac):
tests/method/multidecl_01f/Test.java:2: error: types Bar and Foo are incompatible; both define _$(), but with unrelated return types public abstract class Test extends Foo implements Bar { ^ 1 error
Actual result: an exception stack trace:
Fatal exception: java.util.MissingFormatArgumentException: Format specifier '%s' at java.util.Formatter.format(Formatter.java:2519) at java.util.Formatter.format(Formatter.java:2455) at java.lang.String.format(String.java:2940) at org.extendj.ast.ASTNode.errorf(ASTNode.java:268) at org.extendj.ast.TypeDecl.checkAbstractMethodDecls(TypeDecl.java:1268) at org.extendj.ast.ClassDecl.interfaceMethodCompatibleWithInherited(ClassDecl.java:108) at org.extendj.ast.ClassDecl.refined_TypeHierarchyCheck_ClassDecl_nameProblems(ClassDecl.java:971) at org.extendj.ast.ClassDecl.nameProblems(ClassDecl.java:2125)
Comments (1)
-
reporter - Log in to comment
Add missing argument to error message
Fixed a call to errorf - added missing argument to format specifier.
fixes
#228(bitbucket)→ <<cset 3f4f98313bc6>>