# \`Base.max(::Int, ::Int) = nothing\` crashes Julia

**URL:** <https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396>\
**Category:** New to Julia\
**Created:** [June 9, 2024, 3:56pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396 "2024-06-09T15:56:35Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![sadish-d](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sadish-d/32/48058_2.png) [@sadish-d](https://discourse.julialang.org/u/sadish-d)\
**Post date:** [June 9, 2024, 3:56pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/1 "2024-06-09T15:56:35Z")

</div>

I did `Base.max(::Int, ::Int) = nothing` and it crashed Julia. Is this expected behavior or should it be reported?

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [June 9, 2024, 4:12pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/2 "2024-06-09T16:12:18Z")

</div>

This is a potential consequence of committing type piracy - you’ve ended up overwriting a method that’s used by julia internally, causing an error that’s fatal. You get a similar result if you redefine `Base.+(::Int, ::Int)`. The crash here is expected.

---

<div class="post-metadata">

**Author:** ![jakobjpeters](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jakobjpeters/32/207797_2.png) [@jakobjpeters](https://discourse.julialang.org/u/jakobjpeters)\
**Post date:** [June 9, 2024, 4:13pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/3 "2024-06-09T16:13:35Z")

</div>

It’s also documented in the [style guide](https://docs.julialang.org/en/v1/manual/style-guide/#Avoid-type-piracy) that type piracy “can crash Julia”.

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [June 9, 2024, 4:43pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/4 "2024-06-09T16:43:34Z")

</div>

What are you trying to do?

---

<div class="post-metadata">

**Author:** ![sadish-d](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sadish-d/32/48058_2.png) [@sadish-d](https://discourse.julialang.org/u/sadish-d)\
**Post date:** [June 9, 2024, 5:28pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/5 "2024-06-09T17:28:49Z")

</div>

Just trying to understand what’s going on. I’m happ with “piracy can crash” as a answer. I was guessing that Julia was using the function internally. So good to have that confirmed. Thanks.

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [June 9, 2024, 5:35pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/6 "2024-06-09T17:35:47Z")

</div>

Why would you ever want to do this, though?

---

<div class="post-metadata">

**Author:** ![sadish-d](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sadish-d/32/48058_2.png) [@sadish-d](https://discourse.julialang.org/u/sadish-d)\
**Post date:** [June 9, 2024, 6:33pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/7 "2024-06-09T18:33:09Z")

</div>

I don’t want to, at least not with `max`. I was just fooling around. I found it surprising that Julia crashed as soon as I defined it, without me even calling it, which is what prompted this post. That does not happen with, say, `Base.read(::String) = true`.

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [June 9, 2024, 7:48pm UTC](https://discourse.julialang.org/t/base-max-int-int-nothing-crashes-julia/115396/8 "2024-06-09T19:48:37Z")

</div>

It depends on what code is used by the REPL and the runtime. You can think of it as sawing off a random branch from a tree. If you happen to be sitting on it you crash.
