Skip to content

Get string coercions right #245

@jwiegley

Description

@jwiegley

According to @shlevy , there are 2 axes of string coercion:

  • coerceToString + coerceMore: Do I coerce integers? Do I recurse into lists?
  • addToStore: If coercing a path, do I just convert it into a string, or add it to the store?

There are several string coercion contexts:

  • toString: coerceMore = true, addToStore = false
  • ${: coerceMore = false, addToStore = true
  • derivation argument: coerceMore = true, addToStore = true
  • implicit coercion: coerceMore = false, addToStore = false
  • forceString: it simply must be a string and nothing else

Shea will double check this.

According to these criteria, we are getting this wrong on toString right now.

Metadata

Metadata

Assignees

Labels

easy with C++ knowledgeEasy taks when one can look into C++ codegood first issueSuggested for someone who is not yet familiar with the codebasehelp wantedWhen someone explicitly requests for help

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions