Skip to content

Color.parseColor fails to parse valid HEX formats and has incorrect validation #35

@NonoxyS

Description

@NonoxyS

The current Color.Companion.parseColor implementation contains critical bugs:

  1. Throws "Unknown color" for valid #RRGGBB/#AARRGGBB inputs (requires [0] != '#' instead of [0] == '#')
  2. Explicitly fails for 9-character inputs (e.g., #FF8800CC) with require(colorHEX.length != 9)
  3. Does not handle 3-digit (#RGB) or 4-digit (#ARGB) shorthand formats

Steps to Reproduce:

import dev.icerock.moko.graphics.Color
import dev.icerock.moko.graphics.parseColor

// Throws "Unknown color" (valid input)  
Color.parseColor("#FF8800")  
  
// Throws "Unknown color" (valid 8-digit)  
Color.parseColor("#80FF8800") 

Expected Behavior:
Supports standard formats

#RGB → Color(r=0xRR, g=0xGG, b=0xBB)

#RRGGBB → Color(r=0xRR, g=0xGG, b=0xBB)

#AARRGGBB → Color(a=0xAA, r=0xRR, g=0xGG, b=0xBB)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions