Skip to content

Add support for default implementation of static virtuals with method constraints - #89061

Merged
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865
Jul 19, 2023
Merged

Add support for default implementation of static virtuals with method constraints#89061
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865

Conversation

@davidwrighton

Copy link
Copy Markdown
Member
  • The major problem was the logic which incorrectly would instantiate the methods when it wasn't necessary
  • As the number of flags to the implementation functions has grown very large, this change also includes logic converting them all to a single flags variable when passing them around

Fixes#73658
Fixes#78865

…constraints
Add support for default implmentation of static virtuals with method constraints
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/tests/issues.targets Outdated
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
@davidwrighton
davidwrighton merged commit d1adf81 into dotnet:mainJul 19, 2023
@Joe4evr

Joe4evr commented Aug 10, 2023

Copy link
Copy Markdown
Contributor

Did this not get into preview 7 somehow? I ran my code that previously encountered #73658 and I'm still getting a VerificationException when calling GetInterfaceMap.

Additionally, in trying to make a minimized repo I'm encountering more bugs around getting a target method through reflection (at least one of which is also in .NET 7). Should I open a new issue for these? @AaronRobinsonMSFT@davidwrighton

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

If you are still hitting issues after trying the nightly, then please open a new issue.

@Joe4evr

Copy link
Copy Markdown
Contributor

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

Ah, thanks for that. Looks like I was concerned for nothing. That rc1 build does work in all the scenarios I tested.

@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

4 participants

@davidwrighton@Joe4evr@AaronRobinsonMSFT@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Add support for default implementation of static virtuals with method constraints by davidwrighton · Pull Request #89061 · dotnet/runtime · GitHub
Skip to content

Add support for default implementation of static virtuals with method constraints - #89061

Merged
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865
Jul 19, 2023
Merged

Add support for default implementation of static virtuals with method constraints#89061
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865

Conversation

@davidwrighton

Copy link
Copy Markdown
Member
  • The major problem was the logic which incorrectly would instantiate the methods when it wasn't necessary
  • As the number of flags to the implementation functions has grown very large, this change also includes logic converting them all to a single flags variable when passing them around

Fixes#73658
Fixes#78865

…constraints
Add support for default implmentation of static virtuals with method constraints
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/tests/issues.targets Outdated
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
@davidwrighton
davidwrighton merged commit d1adf81 into dotnet:mainJul 19, 2023
@Joe4evr

Joe4evr commented Aug 10, 2023

Copy link
Copy Markdown
Contributor

Did this not get into preview 7 somehow? I ran my code that previously encountered #73658 and I'm still getting a VerificationException when calling GetInterfaceMap.

Additionally, in trying to make a minimized repo I'm encountering more bugs around getting a target method through reflection (at least one of which is also in .NET 7). Should I open a new issue for these? @AaronRobinsonMSFT@davidwrighton

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

If you are still hitting issues after trying the nightly, then please open a new issue.

@Joe4evr

Copy link
Copy Markdown
Contributor

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

Ah, thanks for that. Looks like I was concerned for nothing. That rc1 build does work in all the scenarios I tested.

@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

4 participants

@davidwrighton@Joe4evr@AaronRobinsonMSFT@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add support for default implementation of static virtuals with method constraints by davidwrighton · Pull Request #89061 · dotnet/runtime · GitHub
Skip to content

Add support for default implementation of static virtuals with method constraints - #89061

Merged
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865
Jul 19, 2023
Merged

Add support for default implementation of static virtuals with method constraints#89061
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865

Conversation

@davidwrighton

Copy link
Copy Markdown
Member
  • The major problem was the logic which incorrectly would instantiate the methods when it wasn't necessary
  • As the number of flags to the implementation functions has grown very large, this change also includes logic converting them all to a single flags variable when passing them around

Fixes#73658
Fixes#78865

…constraints
Add support for default implmentation of static virtuals with method constraints
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/tests/issues.targets Outdated
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
@davidwrighton
davidwrighton merged commit d1adf81 into dotnet:mainJul 19, 2023
@Joe4evr

Joe4evr commented Aug 10, 2023

Copy link
Copy Markdown
Contributor

Did this not get into preview 7 somehow? I ran my code that previously encountered #73658 and I'm still getting a VerificationException when calling GetInterfaceMap.

Additionally, in trying to make a minimized repo I'm encountering more bugs around getting a target method through reflection (at least one of which is also in .NET 7). Should I open a new issue for these? @AaronRobinsonMSFT@davidwrighton

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

If you are still hitting issues after trying the nightly, then please open a new issue.

@Joe4evr

Copy link
Copy Markdown
Contributor

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

Ah, thanks for that. Looks like I was concerned for nothing. That rc1 build does work in all the scenarios I tested.

@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

4 participants

@davidwrighton@Joe4evr@AaronRobinsonMSFT@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add support for default implementation of static virtuals with method constraints by davidwrighton · Pull Request #89061 · dotnet/runtime · GitHub
Skip to content

Add support for default implementation of static virtuals with method constraints - #89061

Merged
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865
Jul 19, 2023
Merged

Add support for default implementation of static virtuals with method constraints#89061
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865

Conversation

@davidwrighton

Copy link
Copy Markdown
Member
  • The major problem was the logic which incorrectly would instantiate the methods when it wasn't necessary
  • As the number of flags to the implementation functions has grown very large, this change also includes logic converting them all to a single flags variable when passing them around

Fixes#73658
Fixes#78865

…constraints
Add support for default implmentation of static virtuals with method constraints
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/tests/issues.targets Outdated
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
@davidwrighton
davidwrighton merged commit d1adf81 into dotnet:mainJul 19, 2023
@Joe4evr

Joe4evr commented Aug 10, 2023

Copy link
Copy Markdown
Contributor

Did this not get into preview 7 somehow? I ran my code that previously encountered #73658 and I'm still getting a VerificationException when calling GetInterfaceMap.

Additionally, in trying to make a minimized repo I'm encountering more bugs around getting a target method through reflection (at least one of which is also in .NET 7). Should I open a new issue for these? @AaronRobinsonMSFT@davidwrighton

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

If you are still hitting issues after trying the nightly, then please open a new issue.

@Joe4evr

Copy link
Copy Markdown
Contributor

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

Ah, thanks for that. Looks like I was concerned for nothing. That rc1 build does work in all the scenarios I tested.

@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

4 participants

@davidwrighton@Joe4evr@AaronRobinsonMSFT@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Add support for default implementation of static virtuals with method constraints by davidwrighton · Pull Request #89061 · dotnet/runtime · GitHub
Skip to content

Add support for default implementation of static virtuals with method constraints - #89061

Merged
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865
Jul 19, 2023
Merged

Add support for default implementation of static virtuals with method constraints#89061
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865

Conversation

@davidwrighton

Copy link
Copy Markdown
Member
  • The major problem was the logic which incorrectly would instantiate the methods when it wasn't necessary
  • As the number of flags to the implementation functions has grown very large, this change also includes logic converting them all to a single flags variable when passing them around

Fixes#73658
Fixes#78865

…constraints
Add support for default implmentation of static virtuals with method constraints
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/tests/issues.targets Outdated
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
@davidwrighton
davidwrighton merged commit d1adf81 into dotnet:mainJul 19, 2023
@Joe4evr

Joe4evr commented Aug 10, 2023

Copy link
Copy Markdown
Contributor

Did this not get into preview 7 somehow? I ran my code that previously encountered #73658 and I'm still getting a VerificationException when calling GetInterfaceMap.

Additionally, in trying to make a minimized repo I'm encountering more bugs around getting a target method through reflection (at least one of which is also in .NET 7). Should I open a new issue for these? @AaronRobinsonMSFT@davidwrighton

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

If you are still hitting issues after trying the nightly, then please open a new issue.

@Joe4evr

Copy link
Copy Markdown
Contributor

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

Ah, thanks for that. Looks like I was concerned for nothing. That rc1 build does work in all the scenarios I tested.

@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

4 participants

@davidwrighton@Joe4evr@AaronRobinsonMSFT@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add support for default implementation of static virtuals with method constraints by davidwrighton · Pull Request #89061 · dotnet/runtime · GitHub
Skip to content

Add support for default implementation of static virtuals with method constraints - #89061

Merged
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865
Jul 19, 2023
Merged

Add support for default implementation of static virtuals with method constraints#89061
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865

Conversation

@davidwrighton

Copy link
Copy Markdown
Member
  • The major problem was the logic which incorrectly would instantiate the methods when it wasn't necessary
  • As the number of flags to the implementation functions has grown very large, this change also includes logic converting them all to a single flags variable when passing them around

Fixes#73658
Fixes#78865

…constraints
Add support for default implmentation of static virtuals with method constraints
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/tests/issues.targets Outdated
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
@davidwrighton
davidwrighton merged commit d1adf81 into dotnet:mainJul 19, 2023
@Joe4evr

Joe4evr commented Aug 10, 2023

Copy link
Copy Markdown
Contributor

Did this not get into preview 7 somehow? I ran my code that previously encountered #73658 and I'm still getting a VerificationException when calling GetInterfaceMap.

Additionally, in trying to make a minimized repo I'm encountering more bugs around getting a target method through reflection (at least one of which is also in .NET 7). Should I open a new issue for these? @AaronRobinsonMSFT@davidwrighton

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

If you are still hitting issues after trying the nightly, then please open a new issue.

@Joe4evr

Copy link
Copy Markdown
Contributor

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

Ah, thanks for that. Looks like I was concerned for nothing. That rc1 build does work in all the scenarios I tested.

@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

4 participants

@davidwrighton@Joe4evr@AaronRobinsonMSFT@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Add support for default implementation of static virtuals with method constraints by davidwrighton · Pull Request #89061 · dotnet/runtime · GitHub
Skip to content

Add support for default implementation of static virtuals with method constraints - #89061

Merged
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865
Jul 19, 2023
Merged

Add support for default implementation of static virtuals with method constraints#89061
davidwrighton merged 8 commits into
dotnet:mainfrom
davidwrighton:fix_73658_and_78865

Conversation

@davidwrighton

Copy link
Copy Markdown
Member
  • The major problem was the logic which incorrectly would instantiate the methods when it wasn't necessary
  • As the number of flags to the implementation functions has grown very large, this change also includes logic converting them all to a single flags variable when passing them around

Fixes#73658
Fixes#78865

…constraints
Add support for default implmentation of static virtuals with method constraints
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/coreclr/inc/enum_class_flags.h Outdated
Comment threadsrc/tests/issues.targets Outdated
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
@davidwrighton
davidwrighton merged commit d1adf81 into dotnet:mainJul 19, 2023
@Joe4evr

Joe4evr commented Aug 10, 2023

Copy link
Copy Markdown
Contributor

Did this not get into preview 7 somehow? I ran my code that previously encountered #73658 and I'm still getting a VerificationException when calling GetInterfaceMap.

Additionally, in trying to make a minimized repo I'm encountering more bugs around getting a target method through reflection (at least one of which is also in .NET 7). Should I open a new issue for these? @AaronRobinsonMSFT@davidwrighton

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

@AaronRobinsonMSFT

Copy link
Copy Markdown
Member

If you are still hitting issues after trying the nightly, then please open a new issue.

@Joe4evr

Copy link
Copy Markdown
Contributor

@Joe4evr Can you try the nightly from https://github.com/dotnet/installer#table. I'm not sure if these fixes made it into preview 7.

Ah, thanks for that. Looks like I was concerned for nothing. That rc1 build does work in all the scenarios I tested.

@ghostghost locked as resolved and limited conversation to collaborators Sep 9, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

4 participants

@davidwrighton@Joe4evr@AaronRobinsonMSFT@MichalStrehovsky