Skip to content

System.Xml readonly annotation - #51798

Closed
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml
Closed

System.Xml readonly annotation#51798
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml

Conversation

@hrrrrustic

Copy link
Copy Markdown
Contributor

This PR is a part of #46675

@ghost

Copy link
Copy Markdown

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @buyaa-n, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR is a part of #46675

Author:hrrrrustic
Assignees:-
Labels:

area-System.Xml, new-api-needs-documentation

Milestone:-

@krwqkrwq 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.

The annotations looks good to me.

@krwq

krwq commented Apr 27, 2021

Copy link
Copy Markdown
Member

Annotations look good to me but I'm not sure that's always a good idea to mark as much as possible as read-only:

  • Can caching be added later? I.e. in some scenarios hash code could be cached but caching would modify the state and therefore make it non-readonly and potentially be a breaking change...
  • Are we introducing "const correctness" in C#? That's probably one of my most hated features in C++ - I'm not personally in favor of having this in C# - it just makes writing code a pain with small benefit - although this is debatable like "tabs" vs "spaces"

@krwq

krwq commented Apr 28, 2021

Copy link
Copy Markdown
Member

@hrrrrustic we have some offline conversation about this and other similar PRs and we need to figure out the guidelines before we can accept these PRs:

  • it would be a breaking change if we try to remove the read-only in the future so this one way and we need to be really careful what we do here
  • as mentioned above - caching cannot be added after you mark something read-only
  • methods modifying argument but not its own state - they need further thought

likely only subset of the changes can be accepted but we need to figure out what subset exactly. We do agree there is a value in some of those, i.e. marking some structs as read-only but we are not particularly sure about marking methods in general. We will keep you updated.

@jeffhandley
jeffhandley marked this pull request as draft April 29, 2021 20:45
@jeffhandley

Copy link
Copy Markdown
Member

This PR is being marked as a draft per #46675 (comment).

@ghostghost closed this May 29, 2021
@ghost

Copy link
Copy Markdown

Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it.

@ghostghost locked as resolved and limited conversation to collaborators Jun 28, 2021
This pull request was closed.
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.

3 participants

@hrrrrustic@krwq@jeffhandley
, '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" + '
System.Xml readonly annotation by hrrrrustic · Pull Request #51798 · dotnet/runtime · GitHub
Skip to content

System.Xml readonly annotation - #51798

Closed
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml
Closed

System.Xml readonly annotation#51798
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml

Conversation

@hrrrrustic

Copy link
Copy Markdown
Contributor

This PR is a part of #46675

@ghost

Copy link
Copy Markdown

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @buyaa-n, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR is a part of #46675

Author:hrrrrustic
Assignees:-
Labels:

area-System.Xml, new-api-needs-documentation

Milestone:-

@krwqkrwq 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.

The annotations looks good to me.

@krwq

krwq commented Apr 27, 2021

Copy link
Copy Markdown
Member

Annotations look good to me but I'm not sure that's always a good idea to mark as much as possible as read-only:

  • Can caching be added later? I.e. in some scenarios hash code could be cached but caching would modify the state and therefore make it non-readonly and potentially be a breaking change...
  • Are we introducing "const correctness" in C#? That's probably one of my most hated features in C++ - I'm not personally in favor of having this in C# - it just makes writing code a pain with small benefit - although this is debatable like "tabs" vs "spaces"

@krwq

krwq commented Apr 28, 2021

Copy link
Copy Markdown
Member

@hrrrrustic we have some offline conversation about this and other similar PRs and we need to figure out the guidelines before we can accept these PRs:

  • it would be a breaking change if we try to remove the read-only in the future so this one way and we need to be really careful what we do here
  • as mentioned above - caching cannot be added after you mark something read-only
  • methods modifying argument but not its own state - they need further thought

likely only subset of the changes can be accepted but we need to figure out what subset exactly. We do agree there is a value in some of those, i.e. marking some structs as read-only but we are not particularly sure about marking methods in general. We will keep you updated.

@jeffhandley
jeffhandley marked this pull request as draft April 29, 2021 20:45
@jeffhandley

Copy link
Copy Markdown
Member

This PR is being marked as a draft per #46675 (comment).

@ghostghost closed this May 29, 2021
@ghost

Copy link
Copy Markdown

Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it.

@ghostghost locked as resolved and limited conversation to collaborators Jun 28, 2021
This pull request was closed.
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.

3 participants

@hrrrrustic@krwq@jeffhandley
, '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('^' + ".*" + ' System.Xml readonly annotation by hrrrrustic · Pull Request #51798 · dotnet/runtime · GitHub
Skip to content

System.Xml readonly annotation - #51798

Closed
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml
Closed

System.Xml readonly annotation#51798
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml

Conversation

@hrrrrustic

Copy link
Copy Markdown
Contributor

This PR is a part of #46675

@ghost

Copy link
Copy Markdown

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @buyaa-n, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR is a part of #46675

Author:hrrrrustic
Assignees:-
Labels:

area-System.Xml, new-api-needs-documentation

Milestone:-

@krwqkrwq 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.

The annotations looks good to me.

@krwq

krwq commented Apr 27, 2021

Copy link
Copy Markdown
Member

Annotations look good to me but I'm not sure that's always a good idea to mark as much as possible as read-only:

  • Can caching be added later? I.e. in some scenarios hash code could be cached but caching would modify the state and therefore make it non-readonly and potentially be a breaking change...
  • Are we introducing "const correctness" in C#? That's probably one of my most hated features in C++ - I'm not personally in favor of having this in C# - it just makes writing code a pain with small benefit - although this is debatable like "tabs" vs "spaces"

@krwq

krwq commented Apr 28, 2021

Copy link
Copy Markdown
Member

@hrrrrustic we have some offline conversation about this and other similar PRs and we need to figure out the guidelines before we can accept these PRs:

  • it would be a breaking change if we try to remove the read-only in the future so this one way and we need to be really careful what we do here
  • as mentioned above - caching cannot be added after you mark something read-only
  • methods modifying argument but not its own state - they need further thought

likely only subset of the changes can be accepted but we need to figure out what subset exactly. We do agree there is a value in some of those, i.e. marking some structs as read-only but we are not particularly sure about marking methods in general. We will keep you updated.

@jeffhandley
jeffhandley marked this pull request as draft April 29, 2021 20:45
@jeffhandley

Copy link
Copy Markdown
Member

This PR is being marked as a draft per #46675 (comment).

@ghostghost closed this May 29, 2021
@ghost

Copy link
Copy Markdown

Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it.

@ghostghost locked as resolved and limited conversation to collaborators Jun 28, 2021
This pull request was closed.
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.

3 participants

@hrrrrustic@krwq@jeffhandley
, '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('^' + ".*" + ' System.Xml readonly annotation by hrrrrustic · Pull Request #51798 · dotnet/runtime · GitHub
Skip to content

System.Xml readonly annotation - #51798

Closed
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml
Closed

System.Xml readonly annotation#51798
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml

Conversation

@hrrrrustic

Copy link
Copy Markdown
Contributor

This PR is a part of #46675

@ghost

Copy link
Copy Markdown

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @buyaa-n, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR is a part of #46675

Author:hrrrrustic
Assignees:-
Labels:

area-System.Xml, new-api-needs-documentation

Milestone:-

@krwqkrwq 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.

The annotations looks good to me.

@krwq

krwq commented Apr 27, 2021

Copy link
Copy Markdown
Member

Annotations look good to me but I'm not sure that's always a good idea to mark as much as possible as read-only:

  • Can caching be added later? I.e. in some scenarios hash code could be cached but caching would modify the state and therefore make it non-readonly and potentially be a breaking change...
  • Are we introducing "const correctness" in C#? That's probably one of my most hated features in C++ - I'm not personally in favor of having this in C# - it just makes writing code a pain with small benefit - although this is debatable like "tabs" vs "spaces"

@krwq

krwq commented Apr 28, 2021

Copy link
Copy Markdown
Member

@hrrrrustic we have some offline conversation about this and other similar PRs and we need to figure out the guidelines before we can accept these PRs:

  • it would be a breaking change if we try to remove the read-only in the future so this one way and we need to be really careful what we do here
  • as mentioned above - caching cannot be added after you mark something read-only
  • methods modifying argument but not its own state - they need further thought

likely only subset of the changes can be accepted but we need to figure out what subset exactly. We do agree there is a value in some of those, i.e. marking some structs as read-only but we are not particularly sure about marking methods in general. We will keep you updated.

@jeffhandley
jeffhandley marked this pull request as draft April 29, 2021 20:45
@jeffhandley

Copy link
Copy Markdown
Member

This PR is being marked as a draft per #46675 (comment).

@ghostghost closed this May 29, 2021
@ghost

Copy link
Copy Markdown

Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it.

@ghostghost locked as resolved and limited conversation to collaborators Jun 28, 2021
This pull request was closed.
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.

3 participants

@hrrrrustic@krwq@jeffhandley
, '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" + ' System.Xml readonly annotation by hrrrrustic · Pull Request #51798 · dotnet/runtime · GitHub
Skip to content

System.Xml readonly annotation - #51798

Closed
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml
Closed

System.Xml readonly annotation#51798
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml

Conversation

@hrrrrustic

Copy link
Copy Markdown
Contributor

This PR is a part of #46675

@ghost

Copy link
Copy Markdown

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @buyaa-n, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR is a part of #46675

Author:hrrrrustic
Assignees:-
Labels:

area-System.Xml, new-api-needs-documentation

Milestone:-

@krwqkrwq 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.

The annotations looks good to me.

@krwq

krwq commented Apr 27, 2021

Copy link
Copy Markdown
Member

Annotations look good to me but I'm not sure that's always a good idea to mark as much as possible as read-only:

  • Can caching be added later? I.e. in some scenarios hash code could be cached but caching would modify the state and therefore make it non-readonly and potentially be a breaking change...
  • Are we introducing "const correctness" in C#? That's probably one of my most hated features in C++ - I'm not personally in favor of having this in C# - it just makes writing code a pain with small benefit - although this is debatable like "tabs" vs "spaces"

@krwq

krwq commented Apr 28, 2021

Copy link
Copy Markdown
Member

@hrrrrustic we have some offline conversation about this and other similar PRs and we need to figure out the guidelines before we can accept these PRs:

  • it would be a breaking change if we try to remove the read-only in the future so this one way and we need to be really careful what we do here
  • as mentioned above - caching cannot be added after you mark something read-only
  • methods modifying argument but not its own state - they need further thought

likely only subset of the changes can be accepted but we need to figure out what subset exactly. We do agree there is a value in some of those, i.e. marking some structs as read-only but we are not particularly sure about marking methods in general. We will keep you updated.

@jeffhandley
jeffhandley marked this pull request as draft April 29, 2021 20:45
@jeffhandley

Copy link
Copy Markdown
Member

This PR is being marked as a draft per #46675 (comment).

@ghostghost closed this May 29, 2021
@ghost

Copy link
Copy Markdown

Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it.

@ghostghost locked as resolved and limited conversation to collaborators Jun 28, 2021
This pull request was closed.
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.

3 participants

@hrrrrustic@krwq@jeffhandley
, '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('^' + ".*" + ' System.Xml readonly annotation by hrrrrustic · Pull Request #51798 · dotnet/runtime · GitHub
Skip to content

System.Xml readonly annotation - #51798

Closed
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml
Closed

System.Xml readonly annotation#51798
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml

Conversation

@hrrrrustic

Copy link
Copy Markdown
Contributor

This PR is a part of #46675

@ghost

Copy link
Copy Markdown

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @buyaa-n, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR is a part of #46675

Author:hrrrrustic
Assignees:-
Labels:

area-System.Xml, new-api-needs-documentation

Milestone:-

@krwqkrwq 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.

The annotations looks good to me.

@krwq

krwq commented Apr 27, 2021

Copy link
Copy Markdown
Member

Annotations look good to me but I'm not sure that's always a good idea to mark as much as possible as read-only:

  • Can caching be added later? I.e. in some scenarios hash code could be cached but caching would modify the state and therefore make it non-readonly and potentially be a breaking change...
  • Are we introducing "const correctness" in C#? That's probably one of my most hated features in C++ - I'm not personally in favor of having this in C# - it just makes writing code a pain with small benefit - although this is debatable like "tabs" vs "spaces"

@krwq

krwq commented Apr 28, 2021

Copy link
Copy Markdown
Member

@hrrrrustic we have some offline conversation about this and other similar PRs and we need to figure out the guidelines before we can accept these PRs:

  • it would be a breaking change if we try to remove the read-only in the future so this one way and we need to be really careful what we do here
  • as mentioned above - caching cannot be added after you mark something read-only
  • methods modifying argument but not its own state - they need further thought

likely only subset of the changes can be accepted but we need to figure out what subset exactly. We do agree there is a value in some of those, i.e. marking some structs as read-only but we are not particularly sure about marking methods in general. We will keep you updated.

@jeffhandley
jeffhandley marked this pull request as draft April 29, 2021 20:45
@jeffhandley

Copy link
Copy Markdown
Member

This PR is being marked as a draft per #46675 (comment).

@ghostghost closed this May 29, 2021
@ghost

Copy link
Copy Markdown

Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it.

@ghostghost locked as resolved and limited conversation to collaborators Jun 28, 2021
This pull request was closed.
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.

3 participants

@hrrrrustic@krwq@jeffhandley
, '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); } })(); })(); System.Xml readonly annotation by hrrrrustic · Pull Request #51798 · dotnet/runtime · GitHub
Skip to content

System.Xml readonly annotation - #51798

Closed
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml
Closed

System.Xml readonly annotation#51798
hrrrrustic wants to merge 3 commits into
dotnet:mainfrom
hrrrrustic:issue-1718-Xml

Conversation

@hrrrrustic

Copy link
Copy Markdown
Contributor

This PR is a part of #46675

@ghost

Copy link
Copy Markdown

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @buyaa-n, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details

This PR is a part of #46675

Author:hrrrrustic
Assignees:-
Labels:

area-System.Xml, new-api-needs-documentation

Milestone:-

@krwqkrwq 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.

The annotations looks good to me.

@krwq

krwq commented Apr 27, 2021

Copy link
Copy Markdown
Member

Annotations look good to me but I'm not sure that's always a good idea to mark as much as possible as read-only:

  • Can caching be added later? I.e. in some scenarios hash code could be cached but caching would modify the state and therefore make it non-readonly and potentially be a breaking change...
  • Are we introducing "const correctness" in C#? That's probably one of my most hated features in C++ - I'm not personally in favor of having this in C# - it just makes writing code a pain with small benefit - although this is debatable like "tabs" vs "spaces"

@krwq

krwq commented Apr 28, 2021

Copy link
Copy Markdown
Member

@hrrrrustic we have some offline conversation about this and other similar PRs and we need to figure out the guidelines before we can accept these PRs:

  • it would be a breaking change if we try to remove the read-only in the future so this one way and we need to be really careful what we do here
  • as mentioned above - caching cannot be added after you mark something read-only
  • methods modifying argument but not its own state - they need further thought

likely only subset of the changes can be accepted but we need to figure out what subset exactly. We do agree there is a value in some of those, i.e. marking some structs as read-only but we are not particularly sure about marking methods in general. We will keep you updated.

@jeffhandley
jeffhandley marked this pull request as draft April 29, 2021 20:45
@jeffhandley

Copy link
Copy Markdown
Member

This PR is being marked as a draft per #46675 (comment).

@ghostghost closed this May 29, 2021
@ghost

Copy link
Copy Markdown

Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it.

@ghostghost locked as resolved and limited conversation to collaborators Jun 28, 2021
This pull request was closed.
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.

3 participants

@hrrrrustic@krwq@jeffhandley