Skip to content

Confusing error message when dynamic call of a generic method tearoff fails #49625

Open
@nshahan

Description

@nshahan

The error message when you call a torn off generic method dynamically contains the wrong name of the method.

main() {
  var a = A();
  dynamic d = a.foo<int>;
  d<int>();
}

var x = <T>() => print('x method $T');

class A {
  foo<T extends num>(String s) => null;
}

All of the details listed in this error are confusing or incorrect.

Uncaught Error: NoSuchMethodError: 'result'
Dynamic call with unexpected type arguments. Expected: 0 Actual: 1
Receiver: Instance of 'JSObject<undefined>'
Arguments: []
    at Object.throw_ [as throw] (dart_sdk.js:4216:11)
    at Object.defaultNoSuchMethod (dart_sdk.js:4712:15)
    at Function.noSuchMethod (dart_sdk.js:5837:19)
    at Object.noSuchMethod (dart_sdk.js:4709:30)
    at callNSM (dart_sdk.js:4401:19)
    at Object._checkAndCall (dart_sdk.js:4438:16)
    at Object.dgcall (dart_sdk.js:4463:17)
    at Object.main (test_05.js:35:10)
    at test_05.html:19:17
    at Object.execCb (require.js:1696:33)
    at Module.check (require.js:883:51)
    at Module.<anonymous> (require.js:1139:34)
    at require.js:134:23
    at require.js:1189:21
    at each (require.js:59:31)
    at Module.emit (require.js:1188:17)
    at Module.check (require.js:938:30)
    at Module.<anonymous> (require.js:1139:34)
    at require.js:134:23
    at require.js:1189:21
    at each (require.js:59:31)
    at Module.emit (require.js:1188:17)
    at Module.check (require.js:938:30)
    at Module.enable (require.js:1176:22)
    at Module.init (require.js:788:26)
    at callGetModule (require.js:1203:63)
    at Object.completeLoad (require.js:1590:21)
    at HTMLScriptElement.onScriptLoad (require.js:1717:29)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2A bug or feature request we're likely to work onarea-web-jsIssues related to JavaScript support for Dart Web, including DDC, dart2js, and JS interop.web-dev-compilerweb-triage-1priority assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions