E07080: 'default' constructor with parameters is not supported
What went wrong
You've used 'default' on a constructor that has PARAMETERS, but 'default' constructor specifically means zero-argument construction.
Worked examples
Compilable examples demonstrating this error and the correct fix:
- ek9 -q 776 (Why can't a default constructor have parameters in EK9?)
Rationale
The 'default' keyword auto-generates sensible implementation for 0-arg constructor by initializing all fields to their default values.
How to fix it
- Remove parameters to use 'default'
- Or remove 'default' and provide manual implementation
- Can have both: default() AND parameterized constructors
Common causes
- Misunderstanding 'default' keyword purpose
- Trying to generate parameter-based constructor
- Wanting auto-generation with parameters
See also
Examples
Every example is compiled by the EK9 compiler: the first fails exactly as captioned, the others fix it.
Fails with E07080: 'default' constructor with parameters is not supported
#!ek9 defines module error.e07080.bad defines class Counter //A 'default' constructor is the generated no-argument one default Counter() -> start as Integer
Fixed: Keep 'default' for the no-argument constructor, and write the one with parameters
#!ek9 defines module error.e07080.good defines class Counter count <- 0 default Counter() Counter() -> start as Integer this.count: start default operator ?
Questions and answers
These Q&A entries show E07080 and its fix: