ceylon/ceylon-compiler — Issue #353: file-dependent erasure bug
Author: ikasiuk
Created: 2012-01-31 19:50:44+00:00
State: open
Labels: BUG

File `source/test2.ceylon`:

```
shared interface I {
shared formal Integer i;
}
```

File `source/test1.ceylon`:

```
shared class C() satisfies I {
shared actual Integer i = 0;
}
```

Trying to compile them (`ceylonc default`):

```
error: C is not abstract and does not override abstract method getI() in I
/home/ivo/src/ceylon/test/source/test1.ceylon:2: getI() in C cannot implement getI() in I; attempting to use incompatible return type
found : ceylon.language.Integer
required: long
shared actual Integer i = 0;
^
```

The strange thing is that the error disappears not only when the files are merged into one, but also when the file contents are swapped, i.e. the file names seem to matter!