Skip to content
Snippets Groups Projects
  • Matthew Dempsky's avatar
    9944ba75
    cmd/compile: fix transitive inlining of generic functions · 9944ba75
    Matthew Dempsky authored
    If an imported, non-generic function F transitively calls a generic
    function G[T], we may need to call CanInline on G[T].
    
    While here, we can also take advantage of the fact that we know G[T]
    was already seen and compiled in an imported package, so we don't need
    to call InlineCalls or add it to typecheck.Target.Decls. This saves us
    from wasting compile time re-creating DUPOK symbols that we know
    already exist in the imported package's link objects.
    
    Fixes #56280.
    
    Change-Id: I3336786bee01616ee9f2b18908738e4ca41c8102
    Reviewed-on: https://go-review.googlesource.com/c/go/+/443535
    
    
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gopher Robot <gobot@golang.org>
    Reviewed-by: default avatarDavid Chase <drchase@google.com>
    Auto-Submit: Matthew Dempsky <mdempsky@google.com>
    9944ba75
    History
    cmd/compile: fix transitive inlining of generic functions
    Matthew Dempsky authored
    If an imported, non-generic function F transitively calls a generic
    function G[T], we may need to call CanInline on G[T].
    
    While here, we can also take advantage of the fact that we know G[T]
    was already seen and compiled in an imported package, so we don't need
    to call InlineCalls or add it to typecheck.Target.Decls. This saves us
    from wasting compile time re-creating DUPOK symbols that we know
    already exist in the imported package's link objects.
    
    Fixes #56280.
    
    Change-Id: I3336786bee01616ee9f2b18908738e4ca41c8102
    Reviewed-on: https://go-review.googlesource.com/c/go/+/443535
    
    
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gopher Robot <gobot@golang.org>
    Reviewed-by: default avatarDavid Chase <drchase@google.com>
    Auto-Submit: Matthew Dempsky <mdempsky@google.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.