package jetbrains.mps.lang.core.typesystem; /*Generated by MPS */ import jetbrains.mps.lang.typesystem.runtime.AbstractNonTypesystemRule_Runtime; import jetbrains.mps.lang.typesystem.runtime.NonTypesystemRule_Runtime; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.typesystem.inference.TypeCheckingContext; import jetbrains.mps.lang.typesystem.runtime.IsApplicableStatus; import jetbrains.mps.validation.IModelValidationSettings; import jetbrains.mps.validation.ValidationSettings; import jetbrains.mps.lang.core.behavior.ExportScope__BehaviorDescriptor; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.errors.messageTargets.MessageTarget; import jetbrains.mps.errors.messageTargets.NodeMessageTarget; import jetbrains.mps.errors.IErrorReporter; import org.jetbrains.mps.openapi.model.SReference; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations; import jetbrains.mps.errors.messageTargets.ReferenceMessageTarget; import org.jetbrains.mps.openapi.language.SAbstractConcept; public class check_Export_NonTypesystemRule extends AbstractNonTypesystemRule_Runtime implements NonTypesystemRule_Runtime { public check_Export_NonTypesystemRule() { } public void applyRule(final SNode node, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { IModelValidationSettings ms = ValidationSettings.getInstance().getModelValidationSettings(); if (ms == null || ms.isDisableCheckOpenAPI()) { return; } String namespace = ExportScope__BehaviorDescriptor.getNamespace_id2erkSmBSCAp.invoke(SNodeOperations.asSConcept(MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x4b498c7787b32cebL, "jetbrains.mps.lang.core.structure.ExportScope")), node); // getModuleNamespace() doesn't work for transient models if (namespace == null) { return; } // check concept of the node if (!((boolean) ExportScope__BehaviorDescriptor.checkExport_id2erkSmBSDLR.invoke(SNodeOperations.asSConcept(MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x4b498c7787b32cebL, "jetbrains.mps.lang.core.structure.ExportScope")), ((boolean) true), SNodeOperations.getConceptDeclaration(node), namespace))) { { MessageTarget errorTarget = new NodeMessageTarget(); IErrorReporter _reporter_2309309498 = typeCheckingContext.reportWarning(node, "usage of nonpublic API", "r:cec599e3-51d2-48a7-af31-989e3cbd593c(jetbrains.mps.lang.core.typesystem)", "8935196238174954469", null, errorTarget); } } // check references for (SReference ref : ListSequence.fromList(SNodeOperations.getReferences(node))) { if (!((boolean) ExportScope__BehaviorDescriptor.checkExport_id2erkSmBSDLR.invoke(SNodeOperations.asSConcept(MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x4b498c7787b32cebL, "jetbrains.mps.lang.core.structure.ExportScope")), ((boolean) false), SLinkOperations.getTargetNode(ref), namespace))) { { MessageTarget errorTarget = new NodeMessageTarget(); errorTarget = new ReferenceMessageTarget(SLinkOperations.getRefLink(ref).getName()); IErrorReporter _reporter_2309309498 = typeCheckingContext.reportWarning(node, "usage of nonpublic API", "r:cec599e3-51d2-48a7-af31-989e3cbd593c(jetbrains.mps.lang.core.typesystem)", "8935196238174954475", null, errorTarget); } } } } public SAbstractConcept getApplicableConcept() { return MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x10802efe25aL, "jetbrains.mps.lang.core.structure.BaseConcept"); } public IsApplicableStatus isApplicableAndPattern(SNode argument) { return new IsApplicableStatus(argument.getConcept().isSubConceptOf(getApplicableConcept()), null); } public boolean overrides() { return false; } }