@module on an @instanceOf type is silently ignored
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 54/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, ocaml
- Domaine
- compilers
Piste de recherche
Start by reading the compiler handling for @module, @scope, and @instanceOf type declarations, then trace the generated JavaScript for the example. Check how @module on an external declaration is represented and tested. Done means the class check either uses the imported or scoped class correctly, or the compiler rejects these attributes on a type declaration.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
@module on an @instanceOf type is silently ignored. The class check then reads a global with the class name, instead of importing the class from the module.
@instanceOf("Object3D") type object3D
@module("three") @instanceOf("Mesh") type mesh = private object3D
@unboxed
type shape = Mesh(mesh) | Other(object3D)
let isMesh = (s: shape) =>
switch s {
| Mesh(_) => true
| Other(_) => false
}
compiles without a warning to
function isMesh(s) {
return s instanceof Mesh;
}
There is no import of three. At runtime Mesh is not defined, so the check throws a ReferenceError, unless some other script happens to define a global Mesh.
Expected: either the check uses the imported class, like a @module("three") external would, or @module on a type declaration is a compile error.
@scope("THREE") is ignored the same way: the check is still s instanceof Mesh, not THREE.Mesh.
Raised in https://github.com/rescript-lang/rescript/issues/9058#issuecomment-6658655177. Classes from local files and JS libraries need this, not only the DOM.
- Langage dominant
- OCaml
- Étoiles
- 7.5k
- Forks
- 485
- Merge moyen
- 16 h 51 min
- PR mergées (30 j)
- 268
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rescript-lang/rescript
-
Exception analysis does not know the Temporal `fromStringOrThrow` functionsPeut-être pris @cknitt l’a pris il y a 3 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
rescript-lang/rescript#9182 ·
Les mainteneurs répondent en général sous 1 jour
-
Build system: make output wording and labels consistentPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
rescript-lang/rescript#9244 ·
Les mainteneurs répondent en général sous 1 jour
-
rescript format: aborts on a syntax error, unstable output, raw compiler errorsPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
rescript-lang/rescript#9243 ·
Les mainteneurs répondent en général sous 1 jour
-
Build system CLI: behavior that disagrees with the help textPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 43/100
rescript-lang/rescript#9242 ·
Les mainteneurs répondent en général sous 1 jour
-
Build system: a failed first build forces full rebuilds, and clean breaks a running watchPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
rescript-lang/rescript#9241 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de rescript-lang/rescript
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
GaloisInc/llvm-pretty#211 ·
-
crash mlir
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
llvm/llvm-project#239604 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug good first issue self-hosted compiler
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
AeroForger/AeroFyl#1 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
KhronosGroup/SPIRV-LLVM-Translator#4151 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
anthropics/claudes-c-compiler#322 ·