diff options
Diffstat (limited to 'runtime/DynamicTypeWrapper.cs')
-rw-r--r-- | runtime/DynamicTypeWrapper.cs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/runtime/DynamicTypeWrapper.cs b/runtime/DynamicTypeWrapper.cs index feba4995..cb6704d4 100644 --- a/runtime/DynamicTypeWrapper.cs +++ b/runtime/DynamicTypeWrapper.cs @@ -2927,9 +2927,9 @@ namespace IKVM.Internal { string message = mmw.Error ?? (wrapper.Name + "." + methods[index].Name + methods[index].Signature); CodeEmitter ilgen = CodeEmitter.Create(mb); - ilgen.EmitThrow("java.lang.AbstractMethodError", message); + ilgen.EmitThrow(mmw.IsConflictError ? "java.lang.IncompatibleClassChangeError" : "java.lang.AbstractMethodError", message); ilgen.DoEmit(); - wrapper.EmitLevel4Warning(HardError.AbstractMethodError, message); + wrapper.EmitLevel4Warning(mmw.IsConflictError ? HardError.IncompatibleClassChangeError : HardError.AbstractMethodError, message); } #if STATIC_COMPILER if (wrapper.IsInterface && !mmw.IsAbstract) @@ -7162,6 +7162,9 @@ namespace IKVM.Internal case HardError.AbstractMethodError: GetClassLoader().IssueMessage(Message.EmittedAbstractMethodError, this.Name, message); break; + case HardError.IncompatibleClassChangeError: + GetClassLoader().IssueMessage(Message.EmittedIncompatibleClassChangeError, this.Name, message); + break; default: throw new InvalidOperationException(); } |