This commit is contained in:
Araq 2020-04-21 23:27:19 +02:00
commit dd24004fab
2 changed files with 5 additions and 5 deletions

View file

@ -32,7 +32,7 @@
and `ioselector_epoll` will no longer be leaked to child processes. and `ioselector_epoll` will no longer be leaked to child processes.
## Language changes ## Language changes
- In newruntime it is now allowed to assign discriminator field without restrictions as long as case object doesn't have custom destructor. Discriminator value doesn't have to be a constant either. If you have custom destructor for case object and you do want to freely assign discriminator fields, it is recommended to refactor object into 2 objects like this: - In newruntime it is now allowed to assign discriminator field without restrictions as long as case object doesn't have custom destructor. Discriminator value doesn't have to be a constant either. If you have custom destructor for case object and you do want to freely assign discriminator fields, it is recommended to refactor object into 2 objects like this:
```nim ```nim
type type
MyObj = object MyObj = object
@ -62,8 +62,8 @@
``` ```
- getImpl() on enum type symbols now returns field syms instead of idents. This helps - getImpl() on enum type symbols now returns field syms instead of idents. This helps
with writing typed macros. Old behavior for backwards compatiblity can be restored with writing typed macros. Old behavior for backwards compatiblity can be restored
with command line switch `--oldast`. with command line switch `--useVersion:1.0`.
## Compiler changes ## Compiler changes

View file

@ -131,7 +131,7 @@ proc semEnum(c: PContext, n: PNode, prev: PType): PType =
e.typ = result e.typ = result
e.position = int(counter) e.position = int(counter)
let symNode = newSymNode(e) let symNode = newSymNode(e)
if optOldAst notin c.config.options and identToReplace != nil: if optNimV1Emulation notin c.config.options and identToReplace != nil:
identToReplace[] = symNode identToReplace[] = symNode
if e.position == 0: hasNull = true if e.position == 0: hasNull = true
if result.sym != nil and sfExported in result.sym.flags: if result.sym != nil and sfExported in result.sym.flags:
@ -1590,7 +1590,7 @@ proc applyTypeSectionPragmas(c: PContext; pragmas, operand: PNode): PNode =
discard "User-defined pragma" discard "User-defined pragma"
else: else:
let sym = searchInScopes(c, ident) let sym = searchInScopes(c, ident)
if sym != nil and sfCustomPragma in sym.flags: if sym != nil and sfCustomPragma in sym.flags:
discard "Custom user pragma" discard "Custom user pragma"
else: else:
# we transform ``(arg1, arg2: T) {.m, rest.}`` into ``m((arg1, arg2: T) {.rest.})`` and # we transform ``(arg1, arg2: T) {.m, rest.}`` into ``m((arg1, arg2: T) {.rest.})`` and