From 3376f4fda06ade52a6f9c1703bfc6139199ce0d6 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 11:32:45 +0300 Subject: [PATCH 1/4] Update getter/setter logic ; add tests --- .../functionalTests/property/5blocks/input.p | 28 +++++++++++++++++++ .../functionalTests/property/5blocks/target.p | 28 +++++++++++++++++++ .../functionalTests/property/5blocks2/input.p | 22 +++++++++++++++ .../property/5blocks2/target.p | 22 +++++++++++++++ .../functionalTests/property/5blocks3/input.p | 19 +++++++++++++ .../property/5blocks3/target.p | 23 +++++++++++++++ .../formatters/property/PropertyFormatter.ts | 19 +++++++++++-- 7 files changed, 158 insertions(+), 3 deletions(-) create mode 100644 resources/functionalTests/property/5blocks/input.p create mode 100644 resources/functionalTests/property/5blocks/target.p create mode 100644 resources/functionalTests/property/5blocks2/input.p create mode 100644 resources/functionalTests/property/5blocks2/target.p create mode 100644 resources/functionalTests/property/5blocks3/input.p create mode 100644 resources/functionalTests/property/5blocks3/target.p diff --git a/resources/functionalTests/property/5blocks/input.p b/resources/functionalTests/property/5blocks/input.p new file mode 100644 index 00000000..2a3a920c --- /dev/null +++ b/resources/functionalTests/property/5blocks/input.p @@ -0,0 +1,28 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ +class AClass: + define private property m_Total as integer no-undo + get. + set. + + define PUBLIC PROPERTY propertyWidthGetterAndSetter AS SomeClass NO-UNDO + GET: + RETURN ?. + END GET. + SET(INPUT pValue AS SomeClass): + IF valid-object(pValue) + THEN DO: + pValue:CallMethod(). + END. + END SET. + + define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. + define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO + GET(): + IF NOT valid-object(propertyWidthGetter_) + THEN propertyWidthGetter = new SomeClass(). + + RETURN propertyWidthGetter_. + END GET. +end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks/target.p b/resources/functionalTests/property/5blocks/target.p new file mode 100644 index 00000000..41252b4a --- /dev/null +++ b/resources/functionalTests/property/5blocks/target.p @@ -0,0 +1,28 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ +class AClass: + define private property m_Total as integer no-undo + get. + set. + + define PUBLIC PROPERTY propertyWidthGetterAndSetter AS SomeClass NO-UNDO + GET: + RETURN ?. + END GET. + SET(INPUT pValue AS SomeClass): + IF valid-object(pValue) + THEN DO: + pValue:CallMethod(). + END. + END SET. + + define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. + define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO + GET(): + IF NOT valid-object(propertyWidthGetter_) + THEN propertyWidthGetter = new SomeClass(). + + RETURN propertyWidthGetter_. + END GET. +end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks2/input.p b/resources/functionalTests/property/5blocks2/input.p new file mode 100644 index 00000000..37bfbe8c --- /dev/null +++ b/resources/functionalTests/property/5blocks2/input.p @@ -0,0 +1,22 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class myRequest implements IWebRequest: + define public property Version as character no-undo + get(): + return web-context:get-cgi-value("ENV", "SERVER_PROTOCOL"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + + define public property ContentType as character no-undo + get(): + return web-context:get-cgi-value("ENV", "CONTENT_TYPE"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + + end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks2/target.p b/resources/functionalTests/property/5blocks2/target.p new file mode 100644 index 00000000..531e0272 --- /dev/null +++ b/resources/functionalTests/property/5blocks2/target.p @@ -0,0 +1,22 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class myRequest implements IWebRequest: + define public property Version as character no-undo + get(): + return web-context:get-cgi-value("ENV", "SERVER_PROTOCOL"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + + define public property ContentType as character no-undo + get(): + return web-context:get-cgi-value("ENV", "CONTENT_TYPE"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + +end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks3/input.p b/resources/functionalTests/property/5blocks3/input.p new file mode 100644 index 00000000..440e5cfa --- /dev/null +++ b/resources/functionalTests/property/5blocks3/input.p @@ -0,0 +1,19 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class Writer implements IWebRequest: + define static public property Registry as BuilderRegistry no-undo + get(): + define variable oRegistry as BuilderRegistry no-undo. + if not valid-object(AuthenticationRequestWriterBuilder:Registry) then + do: + assign oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)). + AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). + assign AuthenticationRequestWriterBuilder:Registry = oRegistry. + end. + return AuthenticationRequestWriterBuilder:Registry. + end get. + private set. + + end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks3/target.p b/resources/functionalTests/property/5blocks3/target.p new file mode 100644 index 00000000..94652cff --- /dev/null +++ b/resources/functionalTests/property/5blocks3/target.p @@ -0,0 +1,23 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class Writer implements IWebRequest: + define static public property Registry as BuilderRegistry no-undo + get(): + define variable oRegistry as BuilderRegistry no-undo. + if not valid-object(AuthenticationRequestWriterBuilder:Registry) + then do: + assign + oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)) + . + AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). + assign + AuthenticationRequestWriterBuilder:Registry = oRegistry + . + end. + return AuthenticationRequestWriterBuilder:Registry. + end get. + private set. + +end class. \ No newline at end of file diff --git a/src/v2/formatters/property/PropertyFormatter.ts b/src/v2/formatters/property/PropertyFormatter.ts index b2d3d014..4a2d2234 100644 --- a/src/v2/formatters/property/PropertyFormatter.ts +++ b/src/v2/formatters/property/PropertyFormatter.ts @@ -4,7 +4,10 @@ import { IFormatter } from "../../formatterFramework/IFormatter"; import { CodeEdit } from "../../model/CodeEdit"; import { FullText } from "../../model/FullText"; import { AFormatter } from "../AFormatter"; -import { SyntaxNodeType } from "../../../model/SyntaxNodeType"; +import { + definitionKeywords, + SyntaxNodeType, +} from "../../../model/SyntaxNodeType"; import { FormatterHelper } from "../../formatterFramework/FormatterHelper"; import { PropertySettings } from "./PropertySettings"; import { IConfigurationManager } from "../../../utils/IConfigurationManager"; @@ -72,15 +75,25 @@ export class PropertyFormatter extends AFormatter implements IFormatter { let newString = ""; switch (node.type) { - case SyntaxNodeType.DefineKeyword: + case definitionKeywords.hasFancy(node.type, ""): newString = FormatterHelper.getCurrentText(node, fullText); break; case SyntaxNodeType.Getter: case SyntaxNodeType.Setter: + const firstLineWhitespace = + FormatterHelper.getActualStatementIndentation( + node, + fullText + ); + const statement = FormatterHelper.addIndentation( + FormatterHelper.getCurrentText(node, fullText).trim(), + -firstLineWhitespace + this.settings.tabSize(), + fullText.eolDelimiter + ); newString = fullText.eolDelimiter + " ".repeat(this.startColumn + this.settings.tabSize()) + - FormatterHelper.getCurrentText(node, fullText).trim(); + statement; break; case SyntaxNodeType.Error: newString = FormatterHelper.getCurrentText(node, fullText); From f6cb4db6c7930da5b09d1bfb5a2e190ed3e699a9 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 11:43:50 +0300 Subject: [PATCH 2/4] Update tests --- .../functionalTests/property/5blocks/input.p | 54 +++++++++---------- .../functionalTests/property/5blocks/target.p | 54 +++++++++---------- .../functionalTests/property/5blocks2/input.p | 42 +++++++-------- .../property/5blocks2/target.p | 42 +++++++-------- .../functionalTests/property/5blocks3/input.p | 36 ++++++------- .../property/5blocks3/target.p | 44 +++++++-------- 6 files changed, 136 insertions(+), 136 deletions(-) diff --git a/resources/functionalTests/property/5blocks/input.p b/resources/functionalTests/property/5blocks/input.p index 2a3a920c..b6fc62eb 100644 --- a/resources/functionalTests/property/5blocks/input.p +++ b/resources/functionalTests/property/5blocks/input.p @@ -1,28 +1,28 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.blockFormatting": true, -"AblFormatter.propertyFormatting": true }*/ -class AClass: - define private property m_Total as integer no-undo - get. - set. - - define PUBLIC PROPERTY propertyWidthGetterAndSetter AS SomeClass NO-UNDO - GET: - RETURN ?. - END GET. - SET(INPUT pValue AS SomeClass): - IF valid-object(pValue) - THEN DO: - pValue:CallMethod(). - END. - END SET. - - define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. - define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO - GET(): - IF NOT valid-object(propertyWidthGetter_) - THEN propertyWidthGetter = new SomeClass(). - - RETURN propertyWidthGetter_. - END GET. +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ +class AClass: + define private property m_Total as integer no-undo + get. + set. + + define PUBLIC PROPERTY propertyWidthGetterAndSetter AS SomeClass NO-UNDO + GET: + RETURN ?. + END GET. + SET(INPUT pValue AS SomeClass): + IF valid-object(pValue) + THEN DO: + pValue:CallMethod(). + END. + END SET. + + define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. + define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO + GET(): + IF NOT valid-object(propertyWidthGetter_) + THEN propertyWidthGetter = new SomeClass(). + + RETURN propertyWidthGetter_. + END GET. end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks/target.p b/resources/functionalTests/property/5blocks/target.p index 41252b4a..a27617ff 100644 --- a/resources/functionalTests/property/5blocks/target.p +++ b/resources/functionalTests/property/5blocks/target.p @@ -1,28 +1,28 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.blockFormatting": true, -"AblFormatter.propertyFormatting": true }*/ -class AClass: - define private property m_Total as integer no-undo - get. - set. - - define PUBLIC PROPERTY propertyWidthGetterAndSetter AS SomeClass NO-UNDO - GET: - RETURN ?. - END GET. - SET(INPUT pValue AS SomeClass): - IF valid-object(pValue) - THEN DO: - pValue:CallMethod(). - END. - END SET. - - define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. - define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO - GET(): - IF NOT valid-object(propertyWidthGetter_) - THEN propertyWidthGetter = new SomeClass(). - - RETURN propertyWidthGetter_. - END GET. +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ +class AClass: + define private property m_Total as integer no-undo + get. + set. + + define PUBLIC PROPERTY propertyWidthGetterAndSetter AS SomeClass NO-UNDO + GET: + RETURN ?. + END GET. + SET(INPUT pValue AS SomeClass): + IF valid-object(pValue) + THEN DO: + pValue:CallMethod(). + END. + END SET. + + define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. + define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO + GET(): + IF NOT valid-object(propertyWidthGetter_) + THEN propertyWidthGetter = new SomeClass(). + + RETURN propertyWidthGetter_. + END GET. end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks2/input.p b/resources/functionalTests/property/5blocks2/input.p index 37bfbe8c..b98d0f85 100644 --- a/resources/functionalTests/property/5blocks2/input.p +++ b/resources/functionalTests/property/5blocks2/input.p @@ -1,22 +1,22 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.blockFormatting": true, -"AblFormatter.propertyFormatting": true }*/ - -class myRequest implements IWebRequest: - define public property Version as character no-undo - get(): - return web-context:get-cgi-value("ENV", "SERVER_PROTOCOL"). - end get. - set(cProp as char): - undo, throw new AppError(GetReadOnlyMessage(),?). - end set. - - define public property ContentType as character no-undo - get(): - return web-context:get-cgi-value("ENV", "CONTENT_TYPE"). - end get. - set(cProp as char): - undo, throw new AppError(GetReadOnlyMessage(),?). - end set. - +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class myRequest implements IWebRequest: + define public property Version as character no-undo + get(): + return web-context:get-cgi-value("ENV", "SERVER_PROTOCOL"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + + define public property ContentType as character no-undo + get(): + return web-context:get-cgi-value("ENV", "CONTENT_TYPE"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks2/target.p b/resources/functionalTests/property/5blocks2/target.p index 531e0272..b21e274c 100644 --- a/resources/functionalTests/property/5blocks2/target.p +++ b/resources/functionalTests/property/5blocks2/target.p @@ -1,22 +1,22 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.blockFormatting": true, -"AblFormatter.propertyFormatting": true }*/ - -class myRequest implements IWebRequest: - define public property Version as character no-undo - get(): - return web-context:get-cgi-value("ENV", "SERVER_PROTOCOL"). - end get. - set(cProp as char): - undo, throw new AppError(GetReadOnlyMessage(),?). - end set. - - define public property ContentType as character no-undo - get(): - return web-context:get-cgi-value("ENV", "CONTENT_TYPE"). - end get. - set(cProp as char): - undo, throw new AppError(GetReadOnlyMessage(),?). - end set. - +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class myRequest implements IWebRequest: + define public property Version as character no-undo + get(): + return web-context:get-cgi-value("ENV", "SERVER_PROTOCOL"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + + define public property ContentType as character no-undo + get(): + return web-context:get-cgi-value("ENV", "CONTENT_TYPE"). + end get. + set(cProp as char): + undo, throw new AppError(GetReadOnlyMessage(),?). + end set. + end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks3/input.p b/resources/functionalTests/property/5blocks3/input.p index 440e5cfa..b9146070 100644 --- a/resources/functionalTests/property/5blocks3/input.p +++ b/resources/functionalTests/property/5blocks3/input.p @@ -1,19 +1,19 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.blockFormatting": true, -"AblFormatter.propertyFormatting": true }*/ - -class Writer implements IWebRequest: - define static public property Registry as BuilderRegistry no-undo - get(): - define variable oRegistry as BuilderRegistry no-undo. - if not valid-object(AuthenticationRequestWriterBuilder:Registry) then - do: - assign oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)). - AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). - assign AuthenticationRequestWriterBuilder:Registry = oRegistry. - end. - return AuthenticationRequestWriterBuilder:Registry. - end get. - private set. - +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class Writer implements IWebRequest: + define static public property Registry as BuilderRegistry no-undo + get(): + define variable oRegistry as BuilderRegistry no-undo. + if not valid-object(AuthenticationRequestWriterBuilder:Registry) then + do: + assign oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)). + AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). + assign AuthenticationRequestWriterBuilder:Registry = oRegistry. + end. + return AuthenticationRequestWriterBuilder:Registry. + end get. + private set. + end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks3/target.p b/resources/functionalTests/property/5blocks3/target.p index 94652cff..ba6ebb41 100644 --- a/resources/functionalTests/property/5blocks3/target.p +++ b/resources/functionalTests/property/5blocks3/target.p @@ -1,23 +1,23 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.blockFormatting": true, -"AblFormatter.propertyFormatting": true }*/ - -class Writer implements IWebRequest: - define static public property Registry as BuilderRegistry no-undo - get(): - define variable oRegistry as BuilderRegistry no-undo. - if not valid-object(AuthenticationRequestWriterBuilder:Registry) - then do: - assign - oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)) - . - AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). - assign - AuthenticationRequestWriterBuilder:Registry = oRegistry - . - end. - return AuthenticationRequestWriterBuilder:Registry. - end get. - private set. - +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true, +"AblFormatter.propertyFormatting": true }*/ + +class Writer implements IWebRequest: + define static public property Registry as BuilderRegistry no-undo + get(): + define variable oRegistry as BuilderRegistry no-undo. + if not valid-object(AuthenticationRequestWriterBuilder:Registry) + then do: + assign + oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)) + . + AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). + assign + AuthenticationRequestWriterBuilder:Registry = oRegistry + . + end. + return AuthenticationRequestWriterBuilder:Registry. + end get. + private set. + end class. \ No newline at end of file From f07b98e9becd323dbc3db7f27f27c267f1178f6d Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 11:48:13 +0300 Subject: [PATCH 3/4] Update tests --- resources/functionalTests/property/5blocks/input.p | 5 +---- resources/functionalTests/property/5blocks/target.p | 7 ++----- resources/functionalTests/property/5blocks2/target.p | 2 +- resources/functionalTests/property/5blocks3/target.p | 2 +- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/resources/functionalTests/property/5blocks/input.p b/resources/functionalTests/property/5blocks/input.p index b6fc62eb..f467d4e7 100644 --- a/resources/functionalTests/property/5blocks/input.p +++ b/resources/functionalTests/property/5blocks/input.p @@ -11,8 +11,7 @@ class AClass: RETURN ?. END GET. SET(INPUT pValue AS SomeClass): - IF valid-object(pValue) - THEN DO: + DO: pValue:CallMethod(). END. END SET. @@ -20,8 +19,6 @@ class AClass: define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO GET(): - IF NOT valid-object(propertyWidthGetter_) - THEN propertyWidthGetter = new SomeClass(). RETURN propertyWidthGetter_. END GET. diff --git a/resources/functionalTests/property/5blocks/target.p b/resources/functionalTests/property/5blocks/target.p index a27617ff..b7521c43 100644 --- a/resources/functionalTests/property/5blocks/target.p +++ b/resources/functionalTests/property/5blocks/target.p @@ -11,8 +11,7 @@ class AClass: RETURN ?. END GET. SET(INPUT pValue AS SomeClass): - IF valid-object(pValue) - THEN DO: + DO: pValue:CallMethod(). END. END SET. @@ -20,9 +19,7 @@ class AClass: define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO GET(): - IF NOT valid-object(propertyWidthGetter_) - THEN propertyWidthGetter = new SomeClass(). - + RETURN propertyWidthGetter_. END GET. end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks2/target.p b/resources/functionalTests/property/5blocks2/target.p index b21e274c..f164c369 100644 --- a/resources/functionalTests/property/5blocks2/target.p +++ b/resources/functionalTests/property/5blocks2/target.p @@ -18,5 +18,5 @@ class myRequest implements IWebRequest: set(cProp as char): undo, throw new AppError(GetReadOnlyMessage(),?). end set. - + end class. \ No newline at end of file diff --git a/resources/functionalTests/property/5blocks3/target.p b/resources/functionalTests/property/5blocks3/target.p index ba6ebb41..aa1d6706 100644 --- a/resources/functionalTests/property/5blocks3/target.p +++ b/resources/functionalTests/property/5blocks3/target.p @@ -19,5 +19,5 @@ class Writer implements IWebRequest: return AuthenticationRequestWriterBuilder:Registry. end get. private set. - + end class. \ No newline at end of file From 9c6cd71d8ef3d239b97e85f94362a444e6875689 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 11:50:44 +0300 Subject: [PATCH 4/4] Update test --- resources/functionalTests/property/5blocks3/input.p | 6 +++--- resources/functionalTests/property/5blocks3/target.p | 12 ++++-------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/resources/functionalTests/property/5blocks3/input.p b/resources/functionalTests/property/5blocks3/input.p index b9146070..f1f570ae 100644 --- a/resources/functionalTests/property/5blocks3/input.p +++ b/resources/functionalTests/property/5blocks3/input.p @@ -6,11 +6,11 @@ class Writer implements IWebRequest: define static public property Registry as BuilderRegistry no-undo get(): define variable oRegistry as BuilderRegistry no-undo. - if not valid-object(AuthenticationRequestWriterBuilder:Registry) then do: - assign oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)). + do transaction: + fun(33). + end. AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). - assign AuthenticationRequestWriterBuilder:Registry = oRegistry. end. return AuthenticationRequestWriterBuilder:Registry. end get. diff --git a/resources/functionalTests/property/5blocks3/target.p b/resources/functionalTests/property/5blocks3/target.p index aa1d6706..eeaf3881 100644 --- a/resources/functionalTests/property/5blocks3/target.p +++ b/resources/functionalTests/property/5blocks3/target.p @@ -6,15 +6,11 @@ class Writer implements IWebRequest: define static public property Registry as BuilderRegistry no-undo get(): define variable oRegistry as BuilderRegistry no-undo. - if not valid-object(AuthenticationRequestWriterBuilder:Registry) - then do: - assign - oRegistry = new BuilderRegistry(get-class(IHttpMessageWriter)) - . + do: + do transaction: + fun(33). + end. AuthenticationRequestWriterBuilder:InitializeRegistry(oRegistry). - assign - AuthenticationRequestWriterBuilder:Registry = oRegistry - . end. return AuthenticationRequestWriterBuilder:Registry. end get.