Skip to content

[pigeon] default member fields values are ignored after code generation #80048

@MatrixDev

Description

@MatrixDev

Pigeon ignores default values for member variables and generated classes for all backends (Flutter, Android, iOS) doesn't have those default values.

Steps to reproduce

Pigeon class

class Test {
  var intResult = 20;
  var boolResult = true;
}

Generated class

class Test {
  int intResult;     // nothing here
  int boolResult;    // nothing here

  Object encode() {
    final Map<Object, Object> pigeonMap = <Object, Object>{};
    pigeonMap['intResult'] = intResult;
    pigeonMap['boolResult'] = boolResult;
    return pigeonMap;
  }

  static CreateConnectorMessage decode(Object message) {
    final Map<Object, Object> pigeonMap = message as Map<Object, Object>;
    return CreateConnectorMessage()
      ..intResult = pigeonMap['intResult'] as int
      ..boolResult = pigeonMap['boolResult'] as bool;
  }
}

Actual result

  • members in generated classes doesn't have default values

Expected result

  • members in generated classes must be initialised with default values when specified

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: new featureNothing broken; request for a new capabilityfound in release: 3.0Found to occur in 3.0found in release: 3.1Found to occur in 3.1has reproducible stepsThe issue has been confirmed reproducible and is ready to work onp: pigeonrelated to pigeon messaging codegen toolpackageflutter/packages repository. See also p: labels.team-ecosystemOwned by Ecosystem teamtriaged-ecosystemTriaged by Ecosystem team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions