Title: fix: generate correct override stub for interface when implementation from base class by HerrCai0907 · Pull Request #2969 · AssemblyScript/assemblyscript · GitHub
Open Graph Title: fix: generate correct override stub for interface when implementation from base class by HerrCai0907 · Pull Request #2969 · AssemblyScript/assemblyscript
X Title: fix: generate correct override stub for interface when implementation from base class by HerrCai0907 · Pull Request #2969 · AssemblyScript/assemblyscript
Description: when class implements interface by its base class member, the original design will not manage it. For example, interface I { foo(): i32; } class Base { foo(): i32 { return 42;} } class C extends Base implements I {} class C implements interface I, but when creating I#foo override stub, it will only search the member of class C. which does not include Base#foo. This PR wants to split override (by extends) and implementation (by implements). Handling override needs to check whether the current class overrides the base class method. Handling implementation needs to check whether the current class and its base class implements the interface method.
Open Graph Description: when class implements interface by its base class member, the original design will not manage it. For example, interface I { foo(): i32; } class Base { foo(): i32 { return 42;} } class C extends...
X Description: when class implements interface by its base class member, the original design will not manage it. For example, interface I { foo(): i32; } class Base { foo(): i32 { return 42;} } class C extends...
Opengraph URL: https://github.com/AssemblyScript/assemblyscript/pull/2969
X: @github
Domain: patch-diff.githubusercontent.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:2edb60b5-a4bd-f4f5-1650-dfc074129006 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | A05C:374646:3A650B:5164E9:696E54ED |
| html-safe-nonce | 6f64064df107d3e976acd59ff005574fc58867289aeb4e3f0780216463ebb9a9 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMDVDOjM3NDY0NjozQTY1MEI6NTE2NEU5OjY5NkU1NEVEIiwidmlzaXRvcl9pZCI6IjM5ODgwNzA3MTAyODA4NjkxMDEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | b6747ad5ac4d8653f5de37f78ced24f9e23ebb88c41eaa3370a08834ab69988a |
| hovercard-subject-tag | pull_request:3132984917 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/AssemblyScript/assemblyscript/pull/2969/files |
| twitter:image | https://avatars.githubusercontent.com/u/77575210?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/77575210?s=400&v=4 |
| og:image:alt | when class implements interface by its base class member, the original design will not manage it. For example, interface I { foo(): i32; } class Base { foo(): i32 { return 42;} } class C extends... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | f68b42d371252b0f236260d6234f4304a806fe5ac43d59faa21fb59d80df103b |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/AssemblyScript/assemblyscript git https://github.com/AssemblyScript/assemblyscript.git |
| octolytics-dimension-user_id | 28916798 |
| octolytics-dimension-user_login | AssemblyScript |
| octolytics-dimension-repository_id | 105138356 |
| octolytics-dimension-repository_nwo | AssemblyScript/assemblyscript |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 105138356 |
| octolytics-dimension-repository_network_root_nwo | AssemblyScript/assemblyscript |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 6b74bc8dbcd10b5d69fd9ee9d2cfdc8b35e18a4c |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width