<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="367116" data-post-id="367116">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="windexoriginal" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  windexoriginal
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Putting more emphasis on the match operator is preferable to relying on a special update syntax.  There is some debate in this thread on plausible interpretations of the map/struct update syntax as a human reader.  Pattern matching lacks this ambiguity.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367116" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-367116" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367116"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #38"></div>
  </section>
</div>
    <div class="postbit" id="367176" data-post-id="367176">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rhcarvalho" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rhcarvalho/120/32243_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rhcarvalho
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m also on the fence.</p>
<p>Deprecation has impact on existing libraries, LLMs, LSPs, etc; and may or may not reduce the language surface.</p>
<p>The arguments for preferring the simpler map update syntax are also good, and would probably make sense in the introductory guides in the Elixir docs.</p>
<p>For now, I think I’d find ways to “suggest” the new syntax (doc updates, LSP hints), but not produce compiler warnings, and evaluate this again before v1.20.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367176" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-367176" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367176"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #39"></div>
  </section>
</div>
    <div class="postbit" id="367179" data-post-id="367179">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Eiji" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Eiji/120/36743_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Eiji
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="rhcarvalho" data-post="40" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rhcarvalho/48/32243_2.png" class="avatar"> rhcarvalho:</div>
<blockquote>
<p>LLMs</p>
</blockquote>
</aside>
<p>Of all arguments this one have no sense. Some LLMs are so “smart” that they are trying to use square brackets instead of <code>do … end</code> block in <code>Elixir</code>. The language is really well documented, so any tool that at least want to pretend it’s smart should generate a valid code depending on the latest stable version that matches <code>mix.exs</code> version requirement. Any kind of algorithm/tool that does not do that is not good enough to even mention it.</p>
<p>Also keep in mind that often many chatbots are learned based on very old data like few years ago which means few stable versions back and bringing new feature every few years is terrible idea. Some sites correctly warns about false positives when using chatbots which is nothing surprising having in mind that chatbots are prepared for <strong>conversation</strong> purposes and therefore does not need to be as strict as we expect from for example <code>LSP</code>.</p>
<p>Existing hex packages for now would just warn a deprecation warning. Nobody should complain about that. Community and especially business rarely depends on abandoned projects. Teams behind <code>LSP</code> implementations and editor plugins are doing amazing work already, so I consider it a problem at all.</p>
<aside class="quote no-group" data-username="rhcarvalho" data-post="40" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rhcarvalho/48/32243_2.png" class="avatar"> rhcarvalho:</div>
<blockquote>
<p>For now, I think I’d find ways to “suggest” the new syntax (doc updates, LSP hints), but not produce compiler warnings, and evaluate this again before v1.20.</p>
</blockquote>
</aside>
<p>Why we should postpone warning message that would not affect the code at all? Fixing it in every repository is trivial and there is no sense of forcing “warnings as errors” for dependency compilation and even if many projects are already updated or even didn’t had such usage.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367179" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-367179" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367179"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #40"></div>
  </section>
</div>
    <div class="postbit" id="367181" data-post-id="367181">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="michalmuskala" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/michalmuskala/120/20288_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  michalmuskala
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote group-livebook_core_team" data-username="josevalim" data-post="1" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/48/1787_2.png" class="avatar"> josevalim:</div>
<blockquote>
<p>Not only that, pattern matching helps us find other bugs in the code too. For example, imagine you have this code:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def trim_address(user) do
  %User{user | address: String.trim(user.adress)}
end
</code></pre>
<p>In this case, there is a typo when reading the field name, which is not caught by the update syntax, but it would have been caught if you pattern matched on the <code>%User{}</code> struct.</p>
</blockquote>
</aside>
<p>I think the type system should be able to detect this as well. Effectively this would be the same as code:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def trim_address(user) do
  tmp1 = user.adress
  tmp2 = String.trim(tmp1)
  %User{user | address: tmp2}
end
</code></pre>
<p>In <code>tmp1</code> line we infer the <code>user</code> variable has to be a map with an <code>adress</code> field. When we reach the update line, we can see a type error - the <code>user</code> variable can’t be of the <code>%User</code> struct if it has an <code>adress</code> field. The error is reported on a different line, than if we asserted the type upfront, but it should still be an error.<br>
This is informed by how eqWAlizer works, which might be different for semantic subtyping.</p>
<p>As a second point, I also have concern about the migration. Imagine I had a code like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def foo(x, :update) do
   %Foo{x | y: :updated}
end
def foo(x, _) do
   x
end
</code></pre>
<p>With the migration as suggested, it would be changed to:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def foo(%Foo{} = x, :update) do
   %{x | y: :updated}
end
def foo(x, _) do
   x
end
</code></pre>
<p>but this has suddenly subtly different semantics: if anything other than the <code>%Foo</code> struct is passed, the old code would crash, the new code will silently fail the first clause and pass it through. This can be “remedied” with the separate assertion like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def foo(x, :update) do
   %Foo{} = x
   %{x | y: :updated}
end
def foo(x, _) do
   x
end
</code></pre>
<p>but that’s becoming quite verbose quickly.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367181" data-batch-url="/posts/batch_likers">
                        8
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-367181" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367181"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #41"></div>
  </section>
</div>
    <div class="postbit" id="367185" data-post-id="367185">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="michalmuskala" data-post="42" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/michalmuskala/48/20288_2.png" class="avatar"> michalmuskala:</div>
<blockquote>
<p>I think the type system should be able to detect this as well. Effectively this would be the same as code:</p>
</blockquote>
</aside>
<p>Yes, in fact it does in main. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"> I was concise in the original description as to not go too much into the typing aspects, but there are cases where it is ambiguous and we cannot, I gave one example here: <a href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/35" class="inline-onebox" rel="nofollow">Changes to the struct update syntax - #35 by josevalim</a></p>
<aside class="quote no-group" data-username="michalmuskala" data-post="42" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/michalmuskala/48/20288_2.png" class="avatar"> michalmuskala:</div>
<blockquote>
<p>With the migration as suggested, it would be changed to:</p>
</blockquote>
</aside>
<p>Good point. The migration would definitely require some care in certain cases such as the one you presented.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367185" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-367185" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367185"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #42"></div>
  </section>
</div>
    <div class="postbit" id="367196" data-post-id="367196">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="michalmuskala" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/michalmuskala/120/20288_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  michalmuskala
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote group-livebook_core_team quote-modified" data-username="josevalim" data-post="43" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/48/1787_2.png" class="avatar"> josevalim:</div>
<blockquote>
<p>Yes, in fact it does in main. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"> I was concise in the original description as to not go too much into the typing aspects, but there are cases where it is ambiguous and we cannot, I gave one example here: <a href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/35" rel="nofollow">Changes to the struct update syntax - #35 by josevalim</a></p>
</blockquote>
</aside>
<p>In the example you talk about propagating type information backward from the update - I agree that wouldn’t work. But propagating type information down from the field access should work just fine - and that’s the behaviour I talked about. In the example you give the at the first line the <code>point.w</code> expression should give a type of “has <code>w</code> field” to the <code>point</code> variable. When we reach the update expression, the type-checker should fail to unify the type of expected <code>%Point</code> struct with the “has <code>w</code> field” type since the struct doesn’t have a <code>w</code> field.<br>
As I said, the error would be in a less helpful location, but there should be an error regardless.</p>
<p>For reference, here’s the snippet:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def absolute_z(condition, point) do
  point.w

  if condition do
    %Point{point | z: abs(point.z)}
  else
    point
  end
end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367196" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-367196" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367196"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #43"></div>
  </section>
</div>
    <div class="postbit" id="367200" data-post-id="367200">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes, thank you, you are correct that indeed we propagate the point.w down and we already do that today! <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
<p>There are other cases where we would not be able to detect though, such as Map.get(point, :z) not being able to say it will always return default, while it would with pattern matching? But in a nutshell we will always catch more as we get smarter but there will always be something that we won’t be able to.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367200" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-367200" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367200"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #44"></div>
  </section>
</div>
    <div class="postbit" id="367472" data-post-id="367472">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="blatyo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/blatyo/120/4554_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  blatyo
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Conduit Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="a-maze-d" data-post="12" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/a-maze-d/48/31720_2.png" class="avatar"> a-maze-d:</div>
<blockquote>
<p>I first was on the “yeah, deprecate” side, because it would make the language smaller, But this post made me think; shouldn’t rather the <code>%{}</code> for structs be deprecated?</p>
</blockquote>
</aside>
<p>There are reasons you wouldn’t want that. One primary one is that you may have a function that accepts different structs that have the foo field. The map update syntax allows polymorphism across multiple struct types. Otherwise you’d have to do something like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def put_foo(%module{foo: _} = thing, foo) do
  %module{thing | foo: foo}
end
</code></pre>
<p>Whereas you can write:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def put_foo(%{foo: _} = thing, foo) do
  %{thing | foo: foo}
end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="367472" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-367472" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="367472"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #45"></div>
  </section>
</div>
    <div class="postbit" id="368173" data-post-id="368173">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="NobbZ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/NobbZ/120/27235_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  NobbZ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I recently tried Elixir 1.19-rc0 on our codebase, and it produced ~500 warnings, which the formatter sadly can not fix easily.</p>
<p>The changes necessary are rather mechanical, and I consider it a pity that we can not disable the warning during a migration phase.</p>
<p>We usually do build with <code>--warnings-as-errors</code> and even if we didn’t, we fear that there are more important warnings hidden in the stream of warnings.</p>
<p>Despite my personal opinions about the update and tooling support, this change will massively slow down our adoption of 1.19 despite all the nice features it would add.</p>
<p>Going through those 500 places all at once will be annoying, and probably none of us seniors want to do that, neither do we want to have our junior (soon to come) through this  monotony.</p>
<p>So enabling this warning gradually would massively help us (and probably other teams with larger code bases) to adopt Elixir 1.19.</p>
<p>It would be sad if the adoption of such a featurefull release would be delayed because of this one warning.</p>
<p>And even though I generally prefer the proposal from rc.1, and it would make it easier to change (only one line touched per warning), it still would be 500 warnings…</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="368173" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-368173" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="368173"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #46"></div>
  </section>
</div>
    <div class="postbit" id="368175" data-post-id="368175">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="NobbZ" data-post="47" data-topic="71232">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nobbz/48/27235_2.png" class="avatar"> NobbZ:</div>
<blockquote>
<p>Going through those 500 places all at once will be annoying, and probably none of us seniors want to do that, neither do we want to have our junior (soon to come) through this monotony.</p>
</blockquote>
</aside>
<p>I’ll do it <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="368175" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/changes-to-the-struct-update-syntax/71232/48">Post #47</a>
	                </div>
	            </div>
              <div id="likers-container-368175" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="368175"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #47"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/71232/load_more?page=5">Load more posts (32 remaining)</a>
</div></template></turbo-stream>