effekt-lang / effekt-lang/effekt

Require capture annotation on extern definitions

Open
#1,253 1 comment 0 reactions 0 assignees View on GitHub
area:parser/lexer
Dominant language
Scala
Stars
469
Forks
41
Avg merge
1d 16h
Merged PRs (30d)
23

Description

Time and time again I and others have observed that capture annotations on externs defaulting to io is more confusing than always requiring it to be explicitly annotated. The following should no longer be accepted:

```
extern def alert(message: String): Unit =
js "alert(message)"
```

Instead one has to write the following with the same meaning:

```
extern def alert(message: String) at io: Unit =
js "alert(message)"
```

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no files or tests. Start by searching the compiler for extern definitions and capture-annotation handling, then run the existing extern-related tests if found. Done means the unannotated form is rejected while the explicit `at io` form remains accepted.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
compilers
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.