Skip to content

Commit 258af92

Browse files
committed
fix: mark map literals as experimental
1 parent aafa2e3 commit 258af92

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

src/language/validation/experimentalLanguageFeatures.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SdsIndexedAccess } from '../generated/ast.js';
1+
import { SdsIndexedAccess, SdsMap } from '../generated/ast.js';
22
import { ValidationAcceptor } from 'langium';
33

44
export const CODE_EXPERIMENTAL_LANGUAGE_FEATURE = 'experimental/language-feature';
@@ -9,3 +9,10 @@ export const indexedAccessesShouldBeUsedWithCaution = (node: SdsIndexedAccess, a
99
code: CODE_EXPERIMENTAL_LANGUAGE_FEATURE,
1010
});
1111
};
12+
13+
export const mapsShouldBeUsedWithCaution = (node: SdsMap, accept: ValidationAcceptor): void => {
14+
accept('warning', 'Map literals are experimental and may change without prior notice.', {
15+
node,
16+
code: CODE_EXPERIMENTAL_LANGUAGE_FEATURE,
17+
});
18+
};

src/language/validation/safe-ds-validator.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,11 @@ import {
9090
lambdaMustBeAssignedToTypedParameter,
9191
lambdaParameterMustNotHaveConstModifier,
9292
} from './other/expressions/lambdas.js';
93-
import { indexedAccessesShouldBeUsedWithCaution } from './experimentalLanguageFeatures.js';
93+
import {
94+
indexedAccessesShouldBeUsedWithCaution,
95+
listsShouldBeUsedWithCaution,
96+
mapsShouldBeUsedWithCaution
97+
} from './experimentalLanguageFeatures.js';
9498
import { requiredParameterMustNotBeExpert } from './builtins/expert.js';
9599
import {
96100
annotationCallArgumentsMustBeConstant,
@@ -197,6 +201,7 @@ export const registerValidationChecks = function (services: SafeDsServices) {
197201
lambdaParametersMustNotBeAnnotated,
198202
lambdaParameterMustNotHaveConstModifier,
199203
],
204+
SdsMap: [mapsShouldBeUsedWithCaution],
200205
SdsMemberAccess: [
201206
memberAccessMustBeNullSafeIfReceiverIsNullable(services),
202207
memberAccessNullSafetyShouldBeNeeded(services),

tests/resources/scoping/member accesses/skip-main.sdstest

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -500,13 +500,6 @@ class SubClassForHiding sub SuperClassForHiding {
500500
static fun staticMethodForHiding()
501501
}
502502

503-
class ClassForResultMemberAccess() {
504-
attr result: Int
505-
}
506-
enum EnumForResultMemberAccess {
507-
result
508-
}
509-
510503

511504
// Access to own members -------------------------------------------------------
512505

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package tests.validation.experimentalLanguageFeature.maps
2+
3+
pipeline myPipeline {
4+
// $TEST$ warning "Map literals are experimental and may change without prior notice."
5+
»{"a": "b"}«;
6+
}

0 commit comments

Comments
 (0)