Skip to content

Prevent ICE on missing lang items. #72195

Closed

Description

@lcnr

There are currently quite a few locations in the compiler similar to the following:

let future_trait = self.tcx.lang_items().future_trait().unwrap();

This causes an internal compiler error in case the expected lang item is not defined,
for example when using #![no_core]. (see #72099)

A better way to deal with this is to use tcx.require_lang_item(FutureTraitLangItem, opt_span) instead, which cleanly stops compilation in case the lang item is missing.

See #72170, which already did this in some places.

This issue has been assigned to @DoctorN via this comment.

Activity

  1. added
    E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
    on May 14, 2020
  2. added
    C-enhancementCategory: An issue proposing an enhancement or a PR with one.
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    on May 14, 2020
  3. cofibrant commented on May 14, 2020

    @cofibrant
    Contributor

    Ah! This is my bad...

  4. cofibrant commented on May 14, 2020

    @cofibrant
    Contributor

    @rustbot claim

  5. self-assigned this
    on May 14, 2020
  6. added 5 commits that reference this issue on May 15, 2020
    af423c9
    a671ffe
    6105499
    ccc62c8
    1be88e6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-lang-itemArea: Language itemsC-enhancementCategory: An issue proposing an enhancement or a PR with one.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions