Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh
, '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" + '
Fix nullable annotation for Validator.TryValidateValue and ValidateValue by jeffhandley · Pull Request #91286 · dotnet/runtime · GitHub
Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh
, '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('^' + ".*" + ' Fix nullable annotation for Validator.TryValidateValue and ValidateValue by jeffhandley · Pull Request #91286 · dotnet/runtime · GitHub
Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh
, '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('^' + ".*" + ' Fix nullable annotation for Validator.TryValidateValue and ValidateValue by jeffhandley · Pull Request #91286 · dotnet/runtime · GitHub
Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh
, '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" + ' Fix nullable annotation for Validator.TryValidateValue and ValidateValue by jeffhandley · Pull Request #91286 · dotnet/runtime · GitHub
Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh
, '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('^' + ".*" + ' Fix nullable annotation for Validator.TryValidateValue and ValidateValue by jeffhandley · Pull Request #91286 · dotnet/runtime · GitHub
Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh
, '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); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Fix nullable annotation for Validator.TryValidateValue and ValidateValue by jeffhandley · Pull Request #91286 · dotnet/runtime · GitHub
Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Fix nullable annotation for Validator.TryValidateValue and ValidateValue by jeffhandley · Pull Request #91286 · dotnet/runtime · GitHub
Skip to content

Fix nullable annotation for Validator.TryValidateValue and ValidateValue - #91286

Merged
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue
Aug 29, 2023
Merged

Fix nullable annotation for Validator.TryValidateValue and ValidateValue#91286
jeffhandley merged 1 commit into
dotnet:mainfrom
jeffhandley:jeffhandley/tryvalidatevalue

Conversation

@jeffhandley

Copy link
Copy Markdown
Member

Fixes#91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-system-componentmodel-dataannotations
See info in area-owners.md if you want to be subscribed.

Issue Details

Fixes #91162

There was an erroneous comment in the ValidatorTryValidateValue and ValidateValue methods indicating that the value could not be null. This comment led to incorrect nullable annotations being applied. Propagation of that surfaced in the new Options source generator.

This removes the erroneous comment, updates the annotation to be more relaxed (non-breaking), and removes the ! from all call sites in the repo. The intent is to backport this fix to .NET 8 RC2.

Author:jeffhandley
Assignees:jeffhandley
Labels:

area-System.ComponentModel.DataAnnotations

Milestone:-

@tarekghtarekgh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Are we planning to backport this one to 8.0 release? It makes sense to port it. I am preparing some other changes in the source gen which we'll need to port too. just FYI for now.

@ghost

This comment was marked as resolved.

@jeffhandley
jeffhandley merged commit f007d88 into dotnet:mainAug 29, 2023
@jeffhandley
jeffhandley deleted the jeffhandley/tryvalidatevalue branch August 29, 2023 20:37
@jeffhandley

Copy link
Copy Markdown
MemberAuthor

/backport to release/8.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6017311556

@stephentoub

stephentoub commented Aug 29, 2023

Copy link
Copy Markdown
Member

Do we have tests that validate everything compiles without warning/error with the options generator on .NET 6/7?

If it works, great, we should backport the change.

If not, I think we'll need to undo (or refine) the options generator change, so that it still uses ! when the parameters are non-nullable in the target reference assembly.

@jeffhandley

Copy link
Copy Markdown
MemberAuthor

Thanks for calling that out @stephentoub! I chatted with @tarekgh and I will push another PR that reverts the source generator references. He's going to consider if we could/should have the source generator be aware of this annotation difference.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect nullable annotation on Validator.TryValidateValue's value?

3 participants

@jeffhandley@stephentoub@tarekgh